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 的属性节点

定位一个节点包括三种方式:

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


    值得注意的是: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


    参考网址:点击打开链接

     

     

     

     

     

     

     

     

  • posted on 2011-12-17 11:22  sp2012  阅读(198)  评论(0编辑  收藏  举报