DOM级XML操作方法

作者: FF_C | 来源:发表于2017-12-30 21:21 被阅读0次

    // DOM2级XML
    // 创建XMLDOM对象
    var xmlDom = document.implementation.createDocument('','root',null); //XML DOM对象已创建,并且提供了root根标签
    //alert(xmlDom);
    //alert(xmlDom.documentElement.tagName);//获取根标签
    alert(xmlDom.getElementsByTagName('root')[0].tagName);//获取根标签第二种方法

       //使用标准DOM去创建节点
       var user = xmlDom.createElement('user');
       xmlDom.documentElement.appendChild('user');
       alert(xmlDom.getElementsByTagName('user')[0].tagName);
    
    
       //PS:DOM2级的XML DOM对象是不支持loadXML()方法,无法简易的直接创建XML字符串
    

    //同步加载xml文件
    //PS :有没有load()方法,载入外部XML文件
    var xmlDom = document.implementation.createDocument('','root',null);
    xmlDom.async=false; //false是同步 true是异步 默认异步
    xmlDom.load('demo.xml');//载入外部XML文件
    // alert(xmlDom.xml);//输出序列化后的XML字符串 报错
    alert(xmlDom.getElementsByTagName('user')[0].tagName);
    alert(xmlDom.getElementsByTagName('user')[0].firstChild.nodeValue);
    alert(xmlDom.getElementsByTagName('user')[0].textContent);//相当于XHTML节点中的innerHTML w3c写法 IE不支持

        //PS:DOM2级是没有.xml属性来序列化XML字符的
    

    //异步加载xml文件

    var xmlDom = document.implementation.createDocument('','root',null);
    xmlDom.async=true;
    xmlDom.onload=function(){ //异步加载通过onload即可,类似IE中的就绪状态事件
    alert(xmlDom.getElementsByTagName('user')[0].textContent);
    };
    xmlDom.load('demo.xml');
    //PS:load()方法只支持Firefox浏览器和新版本的Opera浏览器,其它浏览器不支持

    //问题
    //1 不能简易 的使用字符串来创建XML,比如类似与IE的loadXML()方法。
    //2 不能够像IE中那样 通过.xml序列化XML字符串输出

    //DOMParser类型
    //模拟loadXML()方法,可以简易的创建XML字符串
    var xmlParser = new DOMParser(); //创建DOMParser对象
    //alert(xmlParser);
    var xmlStr='<root><user>lee</user></root>'; //xml字符串
    var xmlDom =xmlParser.parserFromString(xmlStr,'text/xml');//XMLDocumentXMLDOM
    alert(xmlDom.getElementsByTagName('user')[0].tagName);

    //模拟.xml属性序列化字符串
    var serializer = new XMLSerializer();
    var xml = serializeToString(xmlDom);
    alert(xml);

    相关文章

      网友评论

        本文标题:DOM级XML操作方法

        本文链接:https://www.haomeiwen.com/subject/trvngxtx.html