DOM2中的XML

IE可以实现了对XML字符串或XML文件的读取,其他浏览器也各自实现了对XML处理功能。DOM2级在document.implementaion中引入了createDocument()方法。IE9FirefoxOperaChromeSafari都支持这个方法。

       var xmlDom = document.implementation.createDocument("", "root", null);

        //1 命名空间 2 跟表亲 3 文档声明

        //XML DOM对象已创建,并且提供了root根标签


        //        alert(xmlDom.documentElement);
        //        alert(xmlDom.documentElement.tagName);
        //        alert(xmlDom.getElementsByTagName("root")[0].tagName); 

        //标准DOM创建节点


        var user = xmlDom.createElement("user");

        var userText = xmlDom.createTextNode("cpu"); //创建文本
        user.appendChild(userText);

        xmlDom.documentElement.appendChild(user);
        alert(xmlDom.getElementsByTagName("user")[0].firstChild.nodeValue);

 

 

        //DOM2级的XML DOM对象不支持loadXML(),无法建议直接创建XML字符串

        //异步加载
        xmlDom.async = true;
        xmlDom.onload = function () {
            alert(xmlDom.getElementsByTagName('user')[0].tagName);
        }

        xmlDom.load('abc.xml');

        //load()方法只支持firefox浏览器,意义不大

        //1,不能使用字符串创建XML,比如IE的loadXML()方法
        //2,不能像IE那样,通过.xml序列化XML

 

 


        //模拟loadXML()方法,可以建议的创建XML字符串
        var xmlParser = new DOMParser();
        var xmlStr = "<root>\n<user>CPU123</user>\n</root>";
        var xmlDom = xmlParser.parseFromString(xmlStr, "text/xml");
        alert(xmlDom.getElementsByTagName("user")[0].firstChild.nodeValue);

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

posted on 2013-11-15 19:57  cpu歌歌  阅读(180)  评论(0编辑  收藏  举报