您现在的位置: 365建站网 > 365文章 > 详细介绍阐述js获取xml文件中的数据的三种方法

详细介绍阐述js获取xml文件中的数据的三种方法

文章来源:365jz.com     点击数:1409    更新时间:2009-09-24 22:28   参与评论
javascript操作xml文件可以实现创建,删除,插入节点,查询节点的属性值等,请看用Javascript 对XML进行访问,创建,插入,删除四动作
这里只讲怎么样利用js获取XML文件中的数据
举例说明
先创建一个xml文件
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<eyejs>
  <options catename="js学习">
     <options1 title="第一个分类">
        <name>基础知识区</name>
        <url>http://www.eyejs.com/html/16/category-catid-16.html</url>
     </options1>
     <options2>
       <name>兼容ie 和ff浏览器的代</name>
       <url>http://www.eyejs.com/html/17/category-catid-17.html</url>
     </options2>
     <options3>
       <name>js小技巧区</name>
        <url>http://www.eyejs.com/html/12/category-catid-12.html</url>
      </options3>
  </options>
  <options catename="js组件"></options>
  <regedit name="注册"></regedit>
</eyejs>
----------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------
/*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.onload=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.onload=function(){ getValue(xmlDoc); }
      }else{
         return null;
      }
      return xmlDoc;
   }
    function getValue(xmlDoc){
       var arrTags=xmlDoc.getElementsByTagName("options1");
       document.writeln( arrTags[0].getAttribute("title") );
   }

完整代码下载:http://www.eyejs.com/html/21/n-221.html

如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (1409人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号