Question

J'ai le code XML suivant:

<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>

Je dois obtenir le @id de la , où une certaine valeur est présente dans l'une des -tags. L'identifiant qui ont besoin d'être dans la est maintenue en ceci:. $ itm / @ id

Cela signifie que si mon $ id itm / @ est égal à 1273, je dois obtenir 1177 sont revenus. Je ne suis pas tout à fait sûr de savoir comment y parvenir.

En fait, je pourrais avoir XML qui ressemble à ceci ainsi:

<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>

Si tel est le cas, je dois le dernier identifiant, donc cela signifie que si l'itm $ / @ id correspond à des valeurs plus de, je dois saisir la valeur de la dernière page. Je le cas ci-dessus ce serait 1352 .

Espérons que cela fait sens pour vous les gars. Et en passant, je travaille avec Umbraco CMS si cela ne la différence.

Cordialement, Kim

Était-ce utile?

La solution

Vous pouvez utiliser cette

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

ou même ce

(//value[.=1273])[last()]/ancestor::page[1]/@id

Autres conseils

Quelque chose comme page[itms/values/value=$itm/@id][last()]/@id.

ma version: / data / [iTMS / valeurs / valeur / text () = $ itm / @ id] [last ()] / @ id

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top