课程表

XML DOM 基础

XML DOM 节点操作

XML DOM 参考手册

XML DOM 实例

工具箱
速查手册

DOM 属性和方法

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

属性和方法向 XML DOM 定义了编程接口。

实例

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

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

函数 loadXMLString(),位于外部 JavaScript 中,用于加载 XML 字符串。

加载并解析 XML 文件
加载并解析 XML 字符串

编程接口

DOM 把 XML 模拟为一系列节点接口。可通过 JavaScript 或其他编程语言来访问节点。在本教程中,我们使用 JavaScript。

对 DOM 的编程接口是通过一套标准的属性和方法来定义的。

属性经常按照“某事物是什么”的方式来使用(例如节点名是 "book")。

方法经常按照“对某事物做什么”的方式来使用(例如删除 "book" 节点)。

XML DOM 属性

一些典型的 DOM 属性:

  • x.nodeName - x 的名称
  • x.nodeValue - x 的值
  • x.parentNode - x 的父节点
  • x.childNodes - x 的子节点
  • x.attributes - x 的属性节点

注释:在上面的列表中,x 是一个节点对象。

XML DOM 方法

  • x.getElementsByTagName(name) - 获取带有指定标签名称的所有元素
  • x.appendChild(node) - 向 x 插入子节点
  • x.removeChild(node) - 从 x 删除子节点

注释:在上面的列表中,x 是一个节点对象。

实例

从 books.xml 中的 <title> 元素获取文本的 JavaScript 代码:

  1. txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue

在此语句执行后,txt 保存的值是 "Harry Potter"。

解释:

  • xmlDoc - 由解析器创建的 XML DOM
  • getElementsByTagName("title")[0] - 第一个 <title> 元素
  • childNodes[0] - <title> 元素的第一个子节点 (文本节点)
  • nodeValue - 节点的值 (文本自身)

在上面的例子中,getElementsByTagName 是方法,而 childNodes 和 nodeValue 是属性。

解析 XML 文件 - 跨浏览器实例

下面的代码片段使用 loadXMLDoc 函数把 books.xml 载入 XML 解析器中,并显示第一个 book 的数据:

  1. xmlDoc=loadXMLDoc("books.xml");
  2.  
  3. document.write(xmlDoc.getElementsByTagName("title")
  4. [0].childNodes[0].nodeValue);
  5. document.write("<br />");
  6. document.write(xmlDoc.getElementsByTagName("author")
  7. [0].childNodes[0].nodeValue);
  8. document.write("<br />");
  9. document.write(xmlDoc.getElementsByTagName("year")
  10. [0].childNodes[0].nodeValue);

输出:

  1. Harry Potter
  2. J K. Rowling
  3. 2005

TIY

在上面的例子中,我们为每个文本节点使用 childNodes[0],即使每个元素只有一个文本节点。这是由于 getElementsByTagName() 方法总是会返回数组。

解析 XML 字符串 - 跨浏览器实例

下面的代码加载并解析一个 XML 字符串:

下面的代码片段使用 loadXMLString 函数把 books.xml 载入 XML 解析器,并显示第一个 book 的数据:

  1. text="<bookstore>"
  2. text=text+"<book>";
  3. text=text+"<title>Harry Potter</title>";
  4. text=text+"<author>J K. Rowling</author>";
  5. text=text+"<year>2005</year>";
  6. text=text+"</book>";
  7. text=text+"</bookstore>";
  8.  
  9. xmlDoc=loadXMLString(text);
  10.  
  11. document.write(xmlDoc.getElementsByTagName("title")
  12. [0].childNodes[0].nodeValue);
  13. document.write("<br />");
  14. document.write(xmlDoc.getElementsByTagName("author")
  15. [0].childNodes[0].nodeValue);
  16. document.write("<br />");
  17. document.write(xmlDoc.getElementsByTagName("year")
  18. [0].childNodes[0].nodeValue);

输出:

  1. Harry Potter
  2. J K. Rowling
  3. 2005

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号