用Javascript 对XML进行操作

大多数浏览器都有读取和操作 XML 的内建 XML 解析器。解析器(XML Parser)把 XML 转换为 JavaScript 可访问的对象。

 

XML DOM 把XML文档视为一种树结构。这种树结构被称为节点树。

可通过这棵树访问所有节点。可以修改或删除它们的内容,也可以创建新的元素。

这颗节点树展示了节点的集合,以及它们之间的联系。这棵树从根节点开始,然后在树的最低层级向文本节点长出枝条:

 

 

   

 

 

/*1. 第一步肯定是要创建一个操作xml文件的对象

     可是IE和FF创建的方法不一样,所以要写个兼容IE和FF的 
  2. 加载XML文件
  3. 获取或设置XML中的数据有如下方法
      利用selectNodes或childNodes或 
     a. 对象.documentElement.childNodes.item(0) 根元素的直接子级第一个元素对象,依次累推......
        获取是用text或getAttribute("属性名"),设置是用setAttribute("属性名",值)或text
     b. 对象.documentElement.selectNodes("//根元素/直接子级1")或selectSingleNode 
     c. 对象.getElementsByTagName()
 */

 

 

创建一个操作xml文件的对象的方法

  function createXMLObj(xmlPath){
       if(window.ActiveXObject){ //在IE下
          xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
          xmlDoc.async="false";   
          xmlDoc.load(xmlPath); 
      }else if(document.implementation && document.implementation.createDocument){ //在FF下
          xmlDoc=document.implementation.createDocument("", "", null); 
          xmlDoc.load(xmlPath); 
      }else{
         return null;
      }
      return xmlDoc;
}

 

获取数据的三种方法
//方法一
//document.writeln( xdoc.documentElement.childNodes.item(2).childNodes.item(0).getAttribute("title") );
//方法二
//document.writeln( xdoc.documentElement.selectNodes("//eyejs/options/options1").item(0).childNodes.item(0).text );
//document.writeln( xdoc.documentElement.selectNodes("//eyejs/options/options1").item(0).getAttribute("title") );
//document.writeln( xdoc.documentElement.selectNodes("//eyejs/options/options1").item(0).attributes(0).value );
//方法三
//document.writeln( xdoc.getElementsByTagName("options")[0].getAttribute("catename") );
//document.writeln( xdoc.getElementsByTagName("options")[0].attributes[0] );
在获取数据时,在FF下一定要用xdoc.οnlοad=function(){  }来获取

 

 

举例js代码
function createXMLObj(xmlPath){
       if(window.ActiveXObject){ //在IE下
          xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
          xmlDoc.async="false";   
          xmlDoc.load(xmlPath); 
          getValue(xmlDoc);
      }else if(document.implementation && document.implementation.createDocument){ //在FF下
          xmlDoc=document.implementation.createDocument("", "", null); 
          xmlDoc.load(xmlPath); 
          xmlDoc.οnlοad=function(){ getValue(xmlDoc); }
      }else{
         return null;
      }
      return xmlDoc;
   }
    function getValue(xmlDoc){
       var arrTags=xmlDoc.getElementsByTagName("options1");
       document.writeln( arrTags[0].getAttribute("title") );
   }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值