JS读取XML文档方法

项目场景:

今天遇到了一个需求,大致情况是用JS读取远程链接中的XML文件内容,当时翻阅了很多的资料,很多资料都是比较旧的了。虽然现在大多数使用JSON格式进行交互,但是XML的方式仍然存在于许多项目之中。

问题描述:

有如下的XML文档需要我去读


<?xml version="1.0" encoding="utf-8" ?> 
<string xmlns="http://tempuri.org/">
  <Table>
   <ID>1</ID> <Day1>1</Day1> <Day2>2</Day2> 	  
   <Day3>3</Day3>
  </Table> 
</string> 

其中<TABLE> 的子节点有非常的多,我需要将这些子节点的数据都获取到出来,我的想法是遍历<TABLE> 节点,然后获取出来。

解决方案:

这里我直接贴出解决的代码以供参考

在IE中
这个方法首先通过获取到TABLE的所有子节点,然后通过获取到这些子节点的标签名,通过标签名调用selectSingleNode(name)方法获取到子节点对象。

	docSubmit = new ActiveXObject("Microsoft.XMLDOM");
	docSubmit.async = false;
	// url填入获取xml内容的地址
	docSubmit.load(url);
	docSubmit.loadXML(docSubmit.xml.replace(/&lt;/g, "<").replace(/&gt;/g, ">"));
	nodeList = docSubmit.documentElement.getElementsByTagName("Table");
	for (i = 0; i < nodeList.length; i++) {
        var currentNodeRoot = nodeList(i);
        var chilidLength = currentNodeRoot.childNodes.length;
        for (var row = 0; row < chilidLength; row++) {
            var name = currentNodeRoot.childNodes[row].tagName;
            var val = currentNodeRoot.selectSingleNode(name).text;
        }
    }

在其它浏览器中
除了加载XML文件方式的不同,其它步骤一致。

Ajax
Ajax方法也可以运用在获取XML数据当中

$.ajax({
              url:"xxx.xml",
              datatype:"xml",
              success:function(data)
                       {
                         $(data).find("TABLE").each(function(){                      
                         alert($(this).children("ID").text());//获取item 中的 ID
                       },
              error:function(){
              
              },           
           })

如有问题请留言

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值