DOM 解析中的浏览器差异
所有现代的浏览器都支持 W3C DOM 规范。
然而,浏览器之间是有差异的。一个重要的差异是:
- 处理空白和换行的方式
DOM - 空白和换行
XML 经常在节点之间包含换行或空白字符。这是在使用简单的编辑器(比如记事本)编辑文档时经常出现的情况。
下面的例子(由记事本编辑)在每行之间包含 CR/LF(换行),在每个子节点之前包含两个空格:
<book>
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<title>Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
Internet Explorer 将不会把空的空白或换行作为文本节点,而其他浏览器会。
下面的代码片段显示(books.xml 的)根元素拥有多少个子节点:
实例
xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
document.write("Number of child nodes: " + x.length);
x=xmlDoc.documentElement.childNodes;
document.write("Number of child nodes: " + x.length);
实例解释:
- 使用 loadXMLDoc() 把 "" 载入 xmlDoc 中
- 获取根元素的子节点
- 输出子节点的数量。结果取决于您所使用的浏览器。IE 浏览器会输出 4(提醒 4 个子节点),而其他浏览器会输出 9(提醒 9 个子节点)。