Heim  >  Artikel  >  Web-Frontend  >  js 解析xml实例

js 解析xml实例

WBOY
WBOYOriginal
2016-06-01 09:55:011253Durchsuche

先贴上本实例需要用到的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>

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn