xml和xpath

xml指可扩展标记语言(EXtensible Markup Language)类似于标记语言html,设计宗旨是传输数据,而非展示数据
js来读取xml

    var xmlhttp;
    if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
        alert(11);
    }
    else
    {// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        alert(22);
    }
    xmlhttp.open("GET","demo.xml",false);
    xmlhttp.send();
    xmlDoc=xmlhttp.responseXML;
     console.log(xmlDoc.getElementsByTagName("user")[0].firstChild.nodeValue);

在demo.xml中的代码

<?xml version="1.0" encoding="UTF-8" ?>
<root>
   <user>赵文娟</user>
</root>

js向xml文件中增加节点

   var aa=xmlDoc.createElement('aa');
    var root=xmlDoc.documentElement;
    root.appendChild(aa);
    var nodeText=xmlDoc.createTextNode("bb");
    aa.appendChild(nodeText);

所有的标签都是自定义的
同步加载:你正在和第一个人打电话,第二个人必须等待第一个人打完之后,才可以打进来,
异步加载:在qq上聊天,以正在和一个人聊天的时候,其他的人也可以和你聊天。
服务器端默认使用的是异步加载
如果为其指定为同步的话,可能会在IE里边造成假死的状态

实现DOM2级浏览器

实现了DOM2级的浏览器有chorm,火狐,IE8+
创建xmlDOM 并且创建了xmlDOM

var  xmlDOM
=document.implementation.createDocument('','root',null);

其中的3个参数
1、命名空间 2、根标签 3、文档声明
DOM2级的XMLDOM对象只支持load方法加载同一台服务器上的xml文件,不支持将xml的字符串直接载入
但是只有在火狐浏览器中DOM级的XMLDOM才能支持load方法
同步方式来加载demo.xml

    var xmlDOM=document.implementation.createDocument('','root',null); //创建smlDOM  并且创建了xmlDOM
    xmlDOM.async=false;   //指定为同步加载
   //使用标准DOM为其创建节点
      xmlDOM.load('demo.xml');
    alert(xmlDOM.getElementsByTagName('user')[0].firstChild.nodeValue)

异步方式 demo.xml

  var xmlDOM=document.implementation.createDocument('','root',null); //创建smlDOM  并且创建了xmlDOM
    xmlDOM.async=true;   //指定为同步加载
    addEvent(xmlDOM,'load',function () {
        alert(this.getElementsByTagName('user')[0].firstChild.nodeValue)
    })
      xmlDOM.load('demo.xml');

但是这样的DOM2级别的xmlDOM有两个缺点:

1、不能使用字符串来创建xml
2、不能使用xmlDOM.xml来使xmlDOM序列化

所以使用DOMParser来实现

   var xmlParser=new DOMParser();
    var xmlstr="<root>\n\t<user>赵文娟</user>\n</root>"
    var xmlDom=xmlParser.parseFromString(xmlstr,"text/xml");
    var ser=new XMLSerializer();
    var xml=ser.serializeToString(xmlDom);
    alert(xml);

1、使用了DOMParser来实现字符串创建xml
2、使用XMLSerializer来模拟xml的序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值