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')のすべての要素をループせずに1つの方法でそれを行う方法はありますか?

たとえば、.find('Item')-> attribute name='001'のようなことを行うことができますか

ありがとう

4

2 に答える 2

1

はい、慣れているjQueryセレクターを使用してそれを行うことができます。

デモンストレーション(コンソールを開いて、ログに記録されているものを確認します)

あなたのxmlがvarxmlTextにあるとしましょう、あなたはそれを使って解析します

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 に答える