2

次の XML があります。

<data>
    <page id="1118">
        <itms>
            <values>
                <value>1104</value>
            </values>
        </itms>
    </page>
    <page id="1177">
        <itms>
            <values>
                <value>1273</value>
                <value>1215</value>
            </values>
        </itms>
    </page>
</data>

< page > から @id を取得する必要があります。ここで、特定の値が < value > タグの 1 つに存在します。< value > に含める必要がある ID は、$itm/@idに保持されます。

これは、私の $itm/@id が 1273 に等しい場合、1177 を返す必要があることを意味します。これを達成する方法がよくわかりません。

実際には、次のような XML も作成できます。

<data>
    <page id="1118">
        <itms>
            <values>
                <value>1104</value>
            </values>
        </itms>
    </page>
    <page id="1177">
        <itms>
            <values>
                <value>1273</value>
                <value>1215</value>
            </values>
        </itms>
    </page>
    <page id="1352">
        <itms>
            <values>
                <value>1242</value>
                <value>1273</value>
            </values>
        </itms>
    </page>
</data>

その場合、最新の ID が必要なので、$itm/@id がより多くの < page > の値と一致する場合は、最新のページから値を取得する必要があります。上記のケースは1352です。

これが皆さんにとって理にかなっていることを願っています。ちなみに、違いがあれば、私は Umbraco CMS を使用しています。

敬具、キム

4

3 に答える 3

3

これを使用できます

(/data/page[itms/values/value = 1273])[last()]/@id

またはこれさえ

(//value[.=1273])[last()]/ancestor::page[1]/@id
于 2010-03-31T09:41:57.703 に答える
2

のようなものpage[itms/values/value=$itm/@id][last()]/@id

于 2010-03-31T09:36:42.467 に答える
1

私のバージョン: /data/page[itms/values/value/text()=$itm/@id][last()]/@id

于 2010-03-31T09:41:12.083 に答える