课程表

XML DOM 基础

XML DOM 节点操作

XML DOM 参考手册

XML DOM 实例

工具箱
速查手册

DOM 浏览器

当前位置:免费教程 » XML相关 » XML DOM

不同的浏览器在 XML DOM 中处理空文本节点的方式是不同的。

实例

下面的例子使用 XML 文件 books.xml

函数 loadXMLDoc(),位于外部 JavaScript 中,用于加载 XML 文件。

显示节点列表的长度
本例显示了一个节点列表的长度。在 IE 和其他浏览器中,结果是不同的。
忽略节点间的空文本
本例检查节点的 nodeType,且仅处理元素节点。

DOM 解析中的浏览器差异

所有现代浏览器都支持 W3C DOM 规范。

不过,浏览器之间是有差异的。重要的区别有两点:

  • 加载 XML 的方式
  • 处理空白和换行的方式

在 “解析 XML DOM” 这一节,已经解释了加载 XML 的不同方式。

在本节中,我们将讲解处理空白和换行的不同方式。

DOM - 空白和换行

XML 经常在节点之间含有换行或空白字符。这是在使用简单的编辑器(比如记事本)时经常出现的情况。

下面的例子(由记事本编辑)在每行之间含有 CR/LF,在每个子节点之前含有两个空格:

  1. <book>
  2. <title>Harry Potter</title>
  3. <author>J K. Rowling</author>
  4. <year>2005</year>
  5. <price>29.99</price>
  6. </book>

Firefox,以及其他一些浏览器,会把空的空白或换行作为文本节点来处理,而 Internet Explorer 不会这样。

下面的代码片段显示 (books.xml 的) 根元素拥有多少个子节点:

  1. xmlDoc=loadXMLDoc("books.xml");
  2.  
  3. x=xmlDoc.documentElement.childNodes;
  4. document.write("Number of child nodes: " + x.length);

例子解释:

  • 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  • 获取根元素的子节点
  • 输出子节点数目

结果取决于所使用的浏览器。Firefox 输出 9,而 IE 输出 4。

TIY

忽略节点间的空文本

如需忽略元素节点之间的空文本节点,需要检查节点类型。元素节点的类型是 1:

  1. xmlDoc=loadXMLDoc("books.xml");
  2.  
  3. x=xmlDoc.documentElement.childNodes;
  4.  
  5. for (i=0;i<x.length;i++)
  6. {
  7. if (x[i].nodeType==1)
  8. {// only process element nodes
  9. document.write(x[i].nodeName);
  10. document.write("<br />");
  11. }
  12. }

例子解释:

  • 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  • 获取根元素的子节点
  • 检查每个子节点的节点类型。如果节点类型是 "1",则是元素节点

TIY(简单) 或者 TIY(完整)

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号