使用Javascript遍历Xml

时间:2016-02-18 13:37:43

标签: javascript jquery xml

我试图从XML的两个不同部分获取数据:

<product>
    <global>
        <identification>
            <suCode>
                <![CDATA[52774]]>
            </suCode>
            <suExtCode>
                <![CDATA[0]]>
            </suExtCode>
            <code>
                <![CDATA[2000000370804]]>
            </code>
        </identification>
    </global> 
    <PARTS>
        <part1>
            <identification>
                <code>
                    <![CDATA[2000000370828]]>
                </code>
                <lvarCoDE>
                    <![CDATA[0]]>
                </lvarCoDE>
                <linked>
                    <![CDATA[0]]>
                </linked>
                <codeChild>
                    <![CDATA[2000000370804]]>
                </codeChild>
            </identification>
        </part1>
        <part2>
            <identification>
                <gtin>
                    <![CDATA[2000000370835]]>
                </gtin>
                <lvarCoDE>
                    <![CDATA[0]]>
                </lvarCoDE>
                <linked>
                    <![CDATA[0]]>
                </linked>
                <codeChild>
                    <![CDATA[2000000370828]]>
                </codeChild>
            </identification> 
        </part2>
    </PARTS>
</product>

全局和部分与linked标记和suExtCode相关,xml的第二个bloc的不同部分也与code标记和{{{{}}相关联1}}标签

喜欢:52774 - &gt; 2000000370828 - &gt; 2000000370835

有没有办法使用javascript为这个xml创建树视图?

我最后需要的XML:

codeChild

2 个答案:

答案 0 :(得分:0)

没有jQuery:

如果你想要一些没有jQuery的东西,请考虑这个:

var xmlStr = '<product><global><identification>...'</product>';

var xmlDoc =  (new window.DOMParser()).parseFromString(xmlStr, "text/xml");

您可以使用getElementsByIdgetElementsByTagName等DOM方法浏览xmlDoc树:

xmlDoc.getElementsByTagName('identification');

请参阅the MDN docs on DOMParser

使用jQuery:

当你在标签中添加时,我假设你正在使用jQuery。

如果你使用jQuery,它就像这样简单:

var xmlStr = '<product><global><identification>...'</product>';

var xmlDoc = $.parseXML(xmlStr);

然后,您可以将xmlDoc包装在jQuery对象中:

var $xml = $(xmlDoc);

之后,您可以通过$xml树“jQuery方式”:

$xml.find('identification');

请参阅the official documentation for jQuery.parseXML()

答案 1 :(得分:0)

你能做的就是像这样解析XML。

var parser = new DOMParser();
var xml= parser.parseFromString(dataFromXMLFile,"text/xml");

dataFromXMLFile是您作为XML提供的内容。在此之后,xml变量可以像html一样通过document对象使用。

xml.getElementsByTagName('codeChild') // Returns an array of the codeChild elements.