js 解析xml实例

Jun 01, 2016 am 09:55 AM
xml 解析する

先贴上本实例需要用到的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>
ログイン後にコピー

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PowerPoint を使用して XML ファイルを開くことはできますか? PowerPoint を使用して XML ファイルを開くことはできますか? Feb 19, 2024 pm 09:06 PM

PowerPoint を使用して XML ファイルを開くことはできますか?

HTTP ステータス コード 460 の意味と使用法の詳細 HTTP ステータス コード 460 の意味と使用法の詳細 Feb 18, 2024 pm 08:29 PM

HTTP ステータス コード 460 の意味と使用法の詳細

iBatis と MyBatis: 比較と利点の分析 iBatis と MyBatis: 比較と利点の分析 Feb 18, 2024 pm 01:53 PM

iBatis と MyBatis: 比較と利点の分析

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法 Oracle エラー 3114 の詳細な説明: 迅速に解決する方法 Mar 08, 2024 pm 02:42 PM

Oracle エラー 3114 の詳細な説明: 迅速に解決する方法

Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法 Mar 27, 2024 pm 05:24 PM

Win11の新機能分析:Microsoftアカウントへのログインをスキップする方法

PHPにおけるmidpointの意味と使い方の分析 PHPにおけるmidpointの意味と使い方の分析 Mar 27, 2024 pm 08:57 PM

PHPにおけるmidpointの意味と使い方の分析

Apache2 は PHP ファイルを正しく解析できません Apache2 は PHP ファイルを正しく解析できません Mar 08, 2024 am 11:09 AM

Apache2 は PHP ファイルを正しく解析できません

解析ワームホール NTT: あらゆるトークンのオープン フレームワーク 解析ワームホール NTT: あらゆるトークンのオープン フレームワーク Mar 05, 2024 pm 12:46 PM

解析ワームホール NTT: あらゆるトークンのオープン フレームワーク

See all articles