js解析xml

来源:互联网 发布:阿里云中国排名 编辑:程序博客网 时间:2024/06/11 18:01

XML文件

<?xml version="1.0" encoding="utf-8" ?><DongFang>    <Company>        <cNname>1</cNname>        <cIP>1</cIP>    </Company>    <Company>        <cNname>2</cNname>        <cIP>2</cIP>    </Company>    <Company>        <cNname>3</cNname>        <cIP>3</cIP>    </Company>    <Company>        <cNname>4</cNname>        <cIP>4</cIP>    </Company>    <Company>        <cNname>5</cNname>        <cIP>5</cIP>    </Company>    <Company>        <cNname>6</cNname>        <cIP>6</cIP>    </Company></DongFang>

JS解析XML文件

loadXML = function(xmlFile){    var xmlDoc=null;    //判断浏览器的类型    //支持IE浏览器    if(!window.DOMParser && window.ActiveXObject){        var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];        for(var i=0;i<xmlDomVersions.length;i++){            try{                xmlDoc = new ActiveXObject(xmlDomVersions[i]);                break;            }catch(e){            }        }    }    //支持Mozilla浏览器    else if(document.implementation && document.implementation.createDocument){        try{            /* document.implementation.createDocument('','',null); 方法的三个参数说明             * 第一个参数是包含文档所使用的命名空间URI的字符串;              * 第二个参数是包含文档根元素名称的字符串;              * 第三个参数是要创建的文档类型(也称为doctype)             */            xmlDoc = document.implementation.createDocument('','',null);        }catch(e){        }    }    else{        return null;    }    if(xmlDoc!=null){        xmlDoc.async = false;        xmlDoc.load(xmlFile);    }    return xmlDoc;}

JS解析XML字符串

loadXML = function(xmlString){    var xmlDoc=null;    //判断浏览器的类型    //支持IE浏览器     if(!window.DOMParser && window.ActiveXObject){   //window.DOMParser 判断是否是非ie浏览器        var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];        for(var i=0;i<xmlDomVersions.length;i++){            try{                xmlDoc = new ActiveXObject(xmlDomVersions[i]);                xmlDoc.async = false;                xmlDoc.loadXML(xmlString); //loadXML方法载入xml字符串                break;            }catch(e){            }        }    }    //支持Mozilla浏览器    else if(window.DOMParser && document.implementation && document.implementation.createDocument){        try{            /* DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。             * 要使用 DOMParser,使用不带参数的构造函数来实例化它,然后调用其 parseFromString() 方法             * parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本的内容类型             * 可能是 "text/xml""application/xml""application/xhtml+xml" 中的一个。注意,不支持 "text/html"。             */            domParser = new  DOMParser();            xmlDoc = domParser.parseFromString(xmlString, 'text/xml');        }catch(e){        }    }    else{        return null;    }    return xmlDoc;}

调用

var xmldoc=loadXML(text.xml)var elements = xmlDoc.getElementsByTagName("Company");for (var i = 0; i < elements.length; i++) {    var name = elements[i].getElementsByTagName("cNname")[0].firstChild.nodeValue;    var ip = elements[i].getElementsByTagName("cIP")[0].firstChild.nodeValue;}
原创粉丝点击