XML语法

XML语法错误与解决方案
XML文件解析时遇到'ExpatError: not well-formed (invalid token)'的问题,通常由语法错误或非法字符引起,如中文字符、&符号未转义。解决方法包括检查并替换非法字符,特别是将&替换为&。确保遵循XML文档的预定义实体规则。

python爬虫报错

xml.parsers.expat.ExpatError: not well-formed (invalid token): line 8, column 75

一般可能是因为写XML文件时粗心造成的语法错误,用firefox浏览器打开会提示非良好格式错误。比如文件中夹带了错误的非法字符如中文字符,文件源代码结尾处有波浪线等等。


但是有些是由于XML语法不允许出现某些字符。比如&

应该用“&”代替,这样才能被转译成想要的“&”。这种情况在URL中就会出现。


参考:http://www.iteye.com/problems/48025

更多替换:

小于号<   要替换成   &lt;            
 
大于号       >       &gt; 

和        &        &amp;

单引号       '              &apos;

双引号         "               &quot;

这些是XML文档中预定义好的实体。



### 学习 XML 语法 #### 定义与特性 XML(可扩展标记语言)是一种用于传输和存储数据的简单格式。它具有良好的可扩展性,能够实现内容与形式的有效分离,并严格遵循语法要求[^3]。 #### 正规 XML 文档的要求 为了使 XML 文档成为格式正规文档,需满足特定条件: - **声明语句**:每份 XML 文件应以 `<?xml version="1.0" encoding="UTF-8"?>` 开始来指定版本号以及字符编码方式。 - **唯一根元素**:整个文档必须包含在一个唯一的顶级标签之内;此标签被称为根节点。 - **大小写敏感**:所有的标签名称都是区分大小写的。 - **属性值加引号**:当定义带有属性的标签时,这些属性应当被双引号包围起来表示其值。 - **闭合所有标签**:对于每一个开启状态下的起始标签 `<tag>` 都应该存在相应的结束标签 `</tag>` 或者采用自封闭的形式如 `<br />`. - **正确嵌套子元素**:内部层次结构中的各个组件要按照正确的顺序排列并相互匹配[^2]. #### 实际应用案例 在实际开发过程中,可以利用专门工具或者库函数解析处理 XML 数据流。例如,在浏览器环境中可以通过内置 API 将 XML 转换成易于操作的数据模型——DOM对象树形结构,进而借助 JavaScript 进行各种交互逻辑的设计[^1]。 此外,一些新兴技术也采用了基于 XML 的解决方案,比如 xml-agent 提供了一个创新性的框架让开发者构建支持 XML 协议交流的人工智能代理程序,适用于多种场合下生成标准化的消息体或是执行复杂的业务流程控制任务[^4]。 ```javascript // 使用JavaScript获取XML文件的内容 function loadXMLDoc(filename){ var xmlDoc; if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); }else{// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",filename,false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; document.getElementById("myDiv").innerHTML= xmlDoc.getElementsByTagName("TITLE")[0].childNodes[0].nodeValue; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值