不同的浏览器在 XML DOM 中处理空文本节点的方式是不同的。
所有现代浏览器都支持 W3C DOM 规范。
不过,浏览器之间是有差异的。重要的区别有两点:
在 “解析 XML DOM” 这一节,已经解释了加载 XML 的不同方式。
在本节中,我们将讲解处理空白和换行的不同方式。
XML 经常在节点之间含有换行或空白字符。这是在使用简单的编辑器(比如记事本)时经常出现的情况。
下面的例子(由记事本编辑)在每行之间含有 CR/LF,在每个子节点之前含有两个空格:
</>code
- <book>
- <title>Harry Potter</title>
- <author>J K. Rowling</author>
- <year>2005</year>
- <price>29.99</price>
- </book>
Firefox,以及其他一些浏览器,会把空的空白或换行作为文本节点来处理,而 Internet Explorer 不会这样。
下面的代码片段显示 (books.xml 的) 根元素拥有多少个子节点:
</>code
- xmlDoc=loadXMLDoc("books.xml");
- x=xmlDoc.documentElement.childNodes;
- document.write("Number of child nodes: " + x.length);
结果取决于所使用的浏览器。Firefox 输出 9,而 IE 输出 4。
如需忽略元素节点之间的空文本节点,需要检查节点类型。元素节点的类型是 1:
</>code
- xmlDoc=loadXMLDoc("books.xml");
- x=xmlDoc.documentElement.childNodes;
- for (i=0;i<x.length;i++)
- {
- if (x[i].nodeType==1)
- {// only process element nodes
- document.write(x[i].nodeName);
- document.write("<br />");
- }
- }
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛