- 你所在位置:首页 〉VS.net〉XML〉XML基础教程〉XML基础教程:XML DOM—属性和方法
- XML基础教程:XML DOM—属性和方法
- 作者:佚名 文章来源:ttp://www.w3school.com.cn 发布日期:2008-03-06 浏览次数:403
-
- 打印这篇文章
-
XML DOM—属性和方法
属性和方法向 XML DOM 定义了编程接口。
实例
- 加载并解析 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 代码:
txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue在此语句执行后,txt 保存的值是 "Everyday Italian"。
解释:
- xmlDoc - 由解析器创建的 XML DOM
- getElementsByTagName("title")[0] - 第一个 < title> 元素
- childNodes[0] - < title> 元素的第一个子节点 (文本节点)
- nodeValue - 节点的值 (文本自身)
在上面的例子中,getElementsByTagName 是方法,而 childNodes 和 nodeValue 是属性。
解析 XML 文件 - 跨浏览器实例
下面的例子把 XML 文档 ("books.xml") 载入了 XML 解析器:
< html> < body> < script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox, Mozilla, Opera, etc. { xmlDoc=document.implementation.createDocument("","",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("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); } catch(e) {alert(e.message)} < /script> < /body> < /html>输出:
Everyday Italian Giada De Laurentiis 2005
TIY
解析 XML 字符串 - 跨浏览器实例
下面的例子载入并解析了一个 XML 字符串:
< html> < body> < script type="text/javascript"> text="< bookstore>" text=text+"< book>"; text=text+"< title>Everyday Italian< /title>"; text=text+"< author>Giada De Laurentiis< /author>"; text=text+"< year>2005< /year>"; text=text+"< /book>"; text=text+"< /bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } try { 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); } catch(e) {alert(e.message)} < /script> < /body> < /html>
输出:Everyday Italian Giada De Laurentiis 2005
TIY注释:Internet Explorer 使用 loadXML() 方法来解析 XML 字符串,而其他浏览器使用 DOMParser 对象。
在上面的例子中,我们为每个元素使用数组下标 [0],即使只有一本书。这是由于 getElementsByTagName() 方法总是会返回数组。
- 打印这篇文章
- 与本文主题相关的文章
- 返回首页
