通过DOM,您可以访问XML文档中的每个节点。
--------------------------------------------------------------------------------
查找并访问节点
你可通过若干种方法来查找您希望操作的元素:
通过使用getElementsByTagName()方法
通过使用一个元素节点的parentNode、firstChild以及lastChild属性
--------------------------------------------------------------------------------
getElementsByTagName()
getElementsByTagName()方法可在整个文档中查找任何XML元素。
此方法会忽略文档的结构。假如你文档中所有book元素,getElementsByTagName()方法会全部找出它们,不管这些book元素位于哪个级别。
就是说,这个方法会给您任何您所需要的XML元素,不论它们所处的位置!
getElementsByTagName()方法会使用指定的标签名返回所有的元素(作为一个节点列表),这些元素是您在使用此方法时所处的元素的后代。
getElementsByTagName()可用于任何XML元素:
getElementsByTagName() 语法
getElementsByTagName("tagname");
例子
下面这个例子会返回文档中所有book元素的一个节点列表:
xmlDoc.getElementsByTagName("book");
节点列表
当使用某个节点列表时,我们通常会把此列表存储在一个变量中,就像这样:
var x=xmlDoc.getElementsByTagName("book");
现在,变量x包含着页面中所有book元素的一个列表,并且我们可通过它们的索引号莱访问这些book元素。
注释:索引起始于0。
您可以通过使用length属性来循环遍历节点列表:
var x=xmlDoc.getElementsByTagName("book");
for (var i=0;ix.length;i++)
{
// do something with each book element
}
您也可以通过使用索引号莱访问某个具体的元素。
要访问第三个book元素,您可以这样写:
var y=x[2];
--------------------------------------------------------------------------------
parentNode、firstChild以及lastChild
属性parentNode、firstChild以及lastChild会遵循文档的结构,可在文档中继续进行短距离的旅行。
请看下面的XML片段:
bookstore
book category="COOKING"
title lang="en"Everyday Italian/title
authorGiada De Laurentiis/author
year2005/year
price30.00/price
/book
/bookstore
在上面的XML代码中,title元素是book元素的首个子元素(firstChild),price元素是book元素的最后一个子元素(lastChild)。
同时,book元素是title、author、year以及price元素的父节点(parentNode)
--------------------------------------------------------------------------------
根节点
有一个特殊的文档属性可用来访问这些标签:
document.documentElement
此属性可返回存在于XML和HTML文档中的根节点。