XML学习记录之XML-DOM
解析 XML DOM
在解析 XML DOM的解析过程中,IE和其他的浏览器使用不同的解析方式,下面的例子创建一个跨浏览器的解析
1.创建空的 XML 文档对象
2.关闭异步加载,这样可确保在文档完整加载之前,解析器不会继续执行脚本
3.告知解析器加载名为 "books.xml" 的文档
在访问并处理 XML 文档之前,必须把它载入 XML DOM 对象,可以这样做:先创建一个脚本然后调用
接下来就可以对节点进行操作了:
X节点基本的属性包括
x.nodeName - x 的名称
x.nodeValue - x 的值
x.parentNode - x 的父节点
x.childNodes - x 的子节点
x.attributes - x 的属性节点
定位一个节点包括三种方式:
值得注意的是:XML 文档的 documentElement 属性是根节点。
所以你可以这样循环根节点的子节点:
三个重要的 XML DOM 节点属性是:
nodeName、nodeValue、nodeType
nodeName 属性规定节点的名称。
nodeName 是只读的;元素节点的 nodeName 与标签名相同;属性节点的 nodeName 是属性的名称;文本节点的 nodeName 永远是 #text;文档节点的 nodeName 永远是 #document;
nodeValue 属性规定节点的值。
元素节点的 nodeValue 是 undefined;文本节点的 nodeValue 是文本自身;属性节点的 nodeValue 是属性的值
元素类型 | 节点类型 |
---|---|
元素 | 1 |
属性 | 2 |
文本 | 3 |
注释 | 8 |
文档 | 9 |
如何得到节点下面的属性值:
所有现代浏览器都支持 W3C DOM 规范。不过,浏览器之间是有差异的。重要的区别有两点:
加载 XML 的方式、处理空白和换行的方式
Firefox,以及其他一些浏览器,会把空的空白或换行作为文本节点来处理,而 Internet Explorer 不会这样。
节点操作:
获取元素值
获取属性值 - getAttribute()与getAttributeNode()
改变文本:
改变属性,使用 setAttribute() 和nodeValue
删除元素节点:
删除自身 - 删除当前的节点:
删除文本节点:
清空文本节点:
根据名称删除属性节点:
根据对象删除属性节点:
removeAttributeNode(node) 方法通过使用 Node 对象作为参数,来删除属性节点。
替换元素节点:
下面的代码片段替换第一个 <book> 元素
替换文本节点中的数据,replaceData() 方法与使用 nodeValue 属性
replaceData() 方法有三个参数:offset - 在何处开始替换字符。Offset 值以 0 开始。length - 要替换多少字符、string - 要插入的字符串
创建新的元素节点:
创建新的属性节点:
通过使用 setAttribute() 来创建属性:
创建文本节点:
添加节点 - appendChild()
插入节点 - insertBefore()
添加新属性:
向文本节点添加文本 - insertData()
insertData() 方法有两个参数:offset - 在何处开始插入字符(以 0 开始)、string - 要插入的字符串
本文使用的例子 books.xml
参考网址:点击打开链接