> 웹 프론트엔드 > JS 튜토리얼 > js 解析xml实例

js 解析xml实例

WBOY
풀어 주다: 2016-06-01 09:55:01
원래의
1306명이 탐색했습니다.

先贴上本实例需要用到的xml

<code><?xml version='1.0' encoding='gb2312'?>
<persons>
    <person>
        <name>z</name>
        <age>16</age>
        <weight>50</weight>
        <height>160</height>
    </person>
    <person>
        <name>李四</name>
        <age>17</age>
        <weight>51</weight>
        <height>165</height>
    </person>
    <person>
        <name>王二</name>
        <age>18</age>
        <weight>55</weight>
        <height>170</height>
    </person>
    <person>
        <name>javior</name>
        <age>20</age>
        <weight>68</weight>
        <height>179</height>
    </person>
</persons>

</code>
로그인 후 복사

实例-:解析XML字符。

<code><script type="text/javascript">
function loadXmlString(xmlString){
    var xmlDoc=null;
    if(!window.DOMParser && window.ActiveXObject){   //判断浏览器的类型 支持IE浏览器 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){
            }
        }
    }else if(window.DOMParser && document.implementation && document.implementation.createDocument){//支持Mozilla浏览器
        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;
}
</script></code>
로그인 후 복사


实例二:解析XML文件。

<code><script type="text/javascript">
function loadXmlFile(xmlFile){
    var xmlDoc=null;
    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){
            }
        }
    }else if(document.implementation && document.implementation.createDocument){
        try{
            xmlDoc = document.implementation.createDocument('','',null);
        }catch(e){
        }
    }
    else{
        return null;
    }
    if(xmlDoc!=null){
        xmlDoc.async = false;
        xmlDoc.load(xmlFile);
    }
    return xmlDoc;
}
</script></code>
로그인 후 복사


将xml文件或字符串转化为JS对象后,我们就可以使用xml dom来读取xml中的数据了。
代码如下:

<code><script type="text/javascript">
var persons=xml.getElementsByTagName("person");
var str="";
for(var i=0;i<persons.length;i++){
    var fc= persons[i];
    var name=fc.getElementsByTagName("name")[0].innerHTML;
    var age=fc.getElementsByTagName("age")[0].innerHTML;
    var weight=fc.getElementsByTagName("weight")[0].innerHTML;
    var height=fc.getElementsByTagName("height")[0].innerHTML;
    str+="name:"+name+"  age:"+age+"  weight:"+weight+"  height:"+height+"<br/>";
}
</script></code>
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿