3

私は XPath を学ぼうとしていますが、すべてをグーグルで検索しているため、難しいと感じています。ここに私のXMLがあります:

<?xml version="1.0" encoding="utf-8"?>
    <details>
        <signature id="sig1">
            <name>mr. Barry Smith</name>
            <telephone type="fixed">01234 123456</telephone>
            <telephone type="mobile">071234562</telephone>
        </signature>

        <signature id="sig2">
            <name>mr. Harry Smith</name>
            <telephone type="fixed">01234 123456</telephone>
        </signature>
    </details>

携帯電話を持っている人の名前を見つけるにはどうすればよいですか。どちらか一方を取得できますが、両方を取得することはできません。

私はこのようなことを試してきました:

staffdetails/signature/telephone[@type='mobile']name

また、XPath を使用するためのリファレンス ガイドはありますか? オンライン チュートリアルを使用して、XPath のしくみを説明していることがわかりましたが、例では十分にカバーされていません。

ありがとうございました!

4

2 に答える 2

7

following-sibling::ここでは述語を使用したり、ネストしたりする必要はありません。これを行うだけです:

/details/signature[telephone/@type = 'mobile']/name
于 2013-02-10T13:59:16.643 に答える
1

これはうまくいくはずです:

//signature/name[following-sibling::telephone[@type='mobile']]

それは次のように読みます:

=の親と兄弟をname持つものを選択します。signaturetelephonetypemobile

参照に関しては、実際には仕様の例から最も多くを学びました!

于 2013-02-10T09:44:47.497 に答える