加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[前端] xml解析

发布时间:2020-12-16 02:23:50 所属栏目:百科 来源:网络整理
导读:XML文件 ? xml version="1.0" encoding="utf-8" ? DongFang Company cNname 1/ cNname cIP 1/ cIP / Company cNname 2/ cIP 2/ cNname 3/ cIP 3/ cNname 4/ cIP 4/ cNname 5/ cIP 5/ cNname 6/ cIP 6/ Company / DongFang JS解析XML文件 loadXML = function

XML文件

<?xml version="1.0" encoding="utf-8" ?>
<DongFang>
    <Company>
        <cNname>1</cNname>
        <cIP>1</cIP>
    </Company>
    <cNname>2</cIP>2</cNname>3</cIP>3</cNname>4</cIP>4</cNname>5</cIP>5</cNname>6</cIP>6</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;
    // if(!window.DOMParser && window.ActiveXObject){   //window.DOMParser 判断是否是非ie var xmlDomVersions = ['MSXML.2.DOMDocument.6.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){
            }
        }
    }
    // 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;

}

谢谢关注!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读