1

我有这个 xml 文件 - payload.xml

<Remoting><Response>
    <Controller id="c">
    <Messages/>
    <StructData name="Root">
        <F name="@ErrorOccured"/>
        <F name="@TransitionErrorOccurred"/>
        <List name="DataList" aspect="Delete"/>
        <List name="DataList" aspect="New">
            <Item name="001">
                <F name="CreationDateTime" >2012/04/26</F>
                <F name="ProductDescription" />
            </Item>
            <Item name="01F">
                <F name="CreationDateTime" >2012/08/09</F>
                <F name="ProductDescription" >Smartphone 16GB</F>
            </Item>                 
            <Header name="@tableSize">316 </Header>
        </List>
    </StructData>
    <Events>
        <Event event="$Core" operation="$AddRow" path="/Root/DataList"/>
    </Events>
    </Controller>
    </Response></Remoting>

我想提取具有特定名称和特定属性的节点,例如,如果我想提取

<Item name="001">
                <F name="CreationDateTime" >2012/04/26</F>
                <F name="ProductDescription" />
            </Item>

有没有办法以一种方式做到这一点,而无需遍历 .find('Item') 的所有元素

例如,我可以执行类似 .find('Item') -> 属性名称 = '001' 的操作吗

谢谢

4

2 回答 2

1

是的,您可以使用您习惯的 jQuery 选择器来完成。

演示(打开控制台查看记录的内容)

假设您的 xml 在 var xmlText 中,您使用

var $xml = $($.parseXML(xmlText));

然后你找到你的项目使用

var yourItem = $xml.find('item[name="001"]'); // note the lowercase
于 2012-10-04T18:15:19.730 回答
0

本教程可能会有所帮助: http ://www.w3schools.com/xml/xml_parser.asp 这是您可以使用的代码示例。

xmlDoc=parser.parseFromString('<Remoting><Respon...oller>    </Response></Remoting>',"text/xml");
items = xmlDoc.getElementsByTagName('Item');
firstItem = items[0];
于 2012-10-04T18:10:49.353 回答