1

私は次のXMLを持っています:

<Root>
 <Level>
    <Name>John</Name>
    <Key>Lennon</Key>
    <Value>
       <Val>1</Val>
    </Value>
 </Level>
 <Level>
    <Name>Fred</Name>
    <Key>Hi</Key>
    <Value>
       <Val>2</Val>
    </Value>
 </Level>
</Root>

名前とキーについて「含む」を使用するXPathが必要です。

期待される結果は「値/値」です。

入力の場合:名前-ジョン、キー-レノン

私は期待します:1

4

2 に答える 2

1

I think this will do the trick

/Root/Level[Name[1] = "John" and Key[1] = "Lennon"]/Value/Val[1]
于 2012-11-25T06:51:18.640 に答える
1

使用:

/*/*[Name='John'][Key='Lennon']/Value/Val

これにより、文字列値が文字列 "John" の子を持ち、文字列値が文字列 "Lennon:"の子を持つ要素の子である要素の子である要素がVal選択されます。 ) は、XML ドキュメントの最上位要素の子です。ValueNameKeyValue

Val選択した要素の文字列値だけが必要な場合は、次を使用します。

string(/*/*[Name='John'][Key='Lennon']/Value/Val)

これに加えて、任意のVal値が数値であることがわかっている場合は、次を使用します。

number(/*/*[Name='John'][Key='Lennon']/Value/Val)
于 2012-11-25T14:19:33.630 に答える