您经常会需要循环 XML 文档,比如:当您想要提取每个元素的值时。
这个过程叫作“遍历节点树”
下面的例子循环遍历
运行实例 »
点击 "运行实例" 按钮查看在线实例
xmlDoc 中所有现代浏览器都支持 W3C DOM 规范。
但是,浏览器之间存在一些差异。一个重要的区别是:
它们处理空白和换行的方式
XML 通常在节点之间包含换行符或空白字符。当使用记事本等简单编辑器编辑文档时,通常会出现这种情况。
下面的例子(由记事本编辑)在每行之间包含 CR/LF(换行符),并且每个子节点前面有两个空格:
雅舍谈吃 梁实秋 江苏文艺出版社 2013 35 9787539962771
Internet Explorer 9 及更早版本不会将空白或新行视为文本节点,而其他浏览器则会这样做。
下面的例子将输出根元素(books.xml)拥有的子节点数。IE9 及之前版本会输出 6 个子节点,而 IE10 及以后版本以及其他浏览器会输出 9 个子节点:
function myFunction(xml) {
var xmlDoc = xml.responseXML;
x = xmlDoc.documentElement.childNodes;
document.getElementById("demo").innerHTML =
"子节点数:" + x.length;
}
运行实例 »点击 "运行实例" 按钮查看在线实例
XML 解析器通常会解析 XML 文档中的所有文本。
解析 XML 元素时,也会解析 XML 标记之间的文本:
此文本也会被解析
解析器执行此操作是因为 XML 元素可以包含其他元素,如本例所示,其中
Bill Gates
解析器会将其分解为如下子元素:
Bill Gates
“解析字符数据” (PCDATA) 这个术语,用于描述将由 XML 解析器解析的文本数据。
术语 CDATA 用于描述不应由 XML 解析器解析的文本数据。
"<" 和 "&" 等字符在 XML 元素中是非法的。
"<" 将生成错误,因为解析器将其解释为新元素的开始。
"&" 将生成错误,因为解析器将其解释为字符实体的开头。
某些文本(例如 JavaScript 代码)包含大量 "<" 或 "&" 字符。为了避免错误,可以将脚本代码定义为 CDATA。
CDATA 部分内的所有内容都会被解析器忽略。
CDATA 部分以 "" 开始,以 "]]>" 结束:
在上面的示例中,解析器会忽略 CDATA 部分内的所有内容。
CDATA 部分不能包含字符串 "]]>"。不允许嵌套 CDATA 部分。
标记 CDATA 部分结尾的 "]]>" 不能包含空格或换行符。
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习