深水池塘

记录学习过程,分享经验和心得

XMLDOM初学笔记(三)

【本文是在阅读www.w3school.com.cn的教程时随手记下的内容,以免遗忘】

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

编程接口

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 代码:

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


在此语句执行后,txt 保存的值是 "Everyday Italian"

解释:

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

访问节点

您可以通过三种方法来访问节点:

  1. 通过使用 getElementsByTagName() 方法
  2. 通过循环(遍历)节点树
  3. 通过利用节点的关系在节点树中导航

 

getElementsByTagName() 方法

getElementsByTagName() 返回拥有指定标签名的所有元素。

语法

node.getElementsByTagName("tagname"); 

实例

下面的例子返回 x 元素下的所有 <title> 元素:

 

x.getElementsByTagName("title"); 

请注意,上面的例子仅返回 x 节点下的 <title> 元素。要返回 XML 文档中的所有 <title> 元素,请使用:

xmlDoc.getElementsByTagName("title"); 


在这里,xmlDoc 就是文档本身(文档节点)。

DOM Node List

getElementsByTagName() 方法返回节点列表 (node list)。节点列表是节点的数组。

下面的代码通过使用 loadXMLDoc() "books.xml" 载入 xmlDoc 中,然后在变量 x 中存储 <title> 节点的一个列表:

 

xmlDoc=loadXMLDoc("books.xml"); 


x
=xmlDoc.getElementsByTagName("title"); 


可通过下标访问 x 中的 <title> 元素。要访问第三个 <title>,您可以编写:

 

y=x[2]; 

 

注释:下标以 0 起始。

DOM Node List Length

length 属性定义节点列表的长度(即节点的数目)。

您能够通过使用 length 属性来循环一个节点列表:

xmlDoc=loadXMLDoc("books.xml"); 


x
=xmlDoc.getElementsByTagName("title"); 


for (i=0;i<x.length;i++



document.write(x[i].childNodes[
0].nodeValue); 

document.write(
"<br />"); 

}
 


Node Type

 

XML 文档的 documentElement 属性是根节点。

节点的 nodeName 属性是节点的名称。

节点的 nodeType 属性是节点的类型。

遍历节点

下面的代码循环根节点的子节点,同时也是元素节点:

xmlDoc=loadXMLDoc("books.xml"); 


x
=xmlDoc.documentElement.childNodes; 


for (i=0;i<x.length;i++



if (x[i].nodeType==1

{//Process only element nodes (type 1) 

document.write(x[i].nodeName); 

document.write(
"<br />"); 

}
 

}
 



利用节点的关系进行导航

下面的代码通过利用节点的关系在节点树中进行导航:

xmlDoc=loadXMLDoc("books.xml"); 


x
=xmlDoc.getElementsByTagName("book")[0].childNodes; 

y
=xmlDoc.getElementsByTagName("book")[0].firstChild; 


for (i=0;i<x.length;i++



if (y.nodeType==1

{//Process only element nodes (type 1) 

document.write(y.nodeName 
+ "<br />"); 

}
 

y
=y.nextSibling; 

}
 

posted on 2008-06-28 10:58 沉没的青蛙 阅读(55) 评论(0)  编辑 收藏 网摘 所属分类: xml


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-06-28 14:26 编辑过
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:


相关搜索:
XMLDOM初学笔记

相关链接: