5

XPATH を使用してテストしようとしている HTML 構造があります。私が現在見ている構造は次のようなものです:

<div id="item_1" class="item-wrapper">
    <div class="container item">

        <div class="container-header">
            <h2 id="title">test-title</h2>
            <h5 id="description">test-description</h5>
        </div>

    </div>
</div>

ドキュメントには多数の「アイテム」があり、それぞれに一意の ID があります。titleXPATH を使用して、 id ノード (この場合は「test-title」)の値から item_1 ノードを「取得」したいと考えています。

また、ノードタグ (//etc) に依存しない方法でこれを行いたいと考えていdivますh2

私は述語をいじっていますが、うまくいく解決策が得られないようです。例えば:

//*[@class="item-wrapper"][./*[@id="title"][text()="test-title"]] 

助けてくれてありがとう!

4

1 に答える 1

8

以下の XPATH を使用できます。

 //*[@id="title"]/ancestor::*[@id="item_1"][1]

または、関数を使用することもできますFunction: node-set id(object)

 id('title')//ancestor::*[@id="item_1"][1]

アップデート

 //*[.="test-title"]/ancestor::*[@class="item-wrapper"][1]

出力

<div id="item_1" class="item-wrapper">
    <div class="container item">

        <div class="container-header">
            <h2 id="title">test-title</h2>
            <h5 id="description">test-description</h5>
        </div>

    </div>
</div>
于 2013-10-01T14:45:14.893 に答える