编程接口

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 中的 元素获取文本的 JavaScript 代码: </div> <pre>txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue</pre> <div> 在此语句执行后,txt 保存的值是 "Everyday Italian"。 </div> <h3>解释:</h3> <ul> <li><em>xmlDoc</em> - 由解析器创建的 XML DOM </li> <li><em>getElementsByTagName("title")[0]</em> - 第一个 <title> 元素 </li> <li><em>childNodes[0]</em> - <title> 元素的第一个子节点 (文本节点) </li> <li><em>nodeValue</em> - 节点的值 (文本自身) </li> </ul> <div> 在上面的例子中,getElementsByTagName 是方法,而 childNodes 和 nodeValue 是属性。 </div> </div> <div> <h2>解析 XML 文件 - 跨浏览器实例</h2> <div> 下面的代码片段使用 loadXMLDoc 函数把 books.xml 载入 XML 解析器中,并显示第一个 book 的数据: </div> <pre>xmlDoc=loadXMLDoc("books.xml"); document.write(xmlDoc.getElementsByTagName("title") [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("author") [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("year") [0].childNodes[0].nodeValue);</pre> <div> 输出: </div> <pre>Everyday Italian Giada De Laurentiis 2005</pre> <div> TIY </div> <div> 在上面的例子中,我们为每个文本节点使用 childNodes[0],即使每个元素只有一个文本节点。这是由于 getElementsByTagName() 方法总是会返回数组。 </div> </div> <div> <h2>解析 XML 字符串 - 跨浏览器实例</h2> <div> 下面的代码加载并解析一个 XML 字符串: </div> <div> 下面的代码片段使用 loadXMLString 函数把 books.xml 载入 XML 解析器,并显示第一个 book 的数据: </div> <pre>text="<bookstore>" text=text+"<book>"; text=text+"<title>Everyday Italian"; text=text+"Giada De Laurentiis"; text=text+"2005"; text=text+""; text=text+""; xmlDoc=loadXMLString(text); document.write(xmlDoc.getElementsByTagName("title") [0].childNodes[0].nodeValue); document.write("
"); document.write(xmlDoc.getElementsByTagName("author") [0].childNodes[0].nodeValue); document.write("
"); document.write(xmlDoc.getElementsByTagName("year") [0].childNodes[0].nodeValue);
输出:
Everyday Italian
Giada De Laurentiis
2005
方法 XML 休闲 XML

0

收藏

上一篇:XML 加载函数 下一篇:XML DOM 访问节点
笨笨城的大宾

132篇文章,35W+人气,0粉丝

关注