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。使用 XPATH 我想从titleid 节点的值(在本例中为“test-title”)“获取”item_1 节点。

我也想以不依赖于节点标签(div/ h2/etc)的方式做到这一点。

我一直在玩谓词,但我似乎无法找到有效的解决方案。例如:

//*[@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 回答