我有一个HTML结构,我试图使用XPATH进行测试。我现在要看的结构是这样的:
<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我想从title
id节点的值“获取”item_1节点(在本例中为“test-title”)。
我还希望以不依赖于节点标记(div
/ h2
/ etc)的方式执行此操作。
我一直在玩谓词,但我似乎无法找到有效的解决方案。例如:
//*[@class="item-wrapper"][./*[@id="title"][text()="test-title"]]
感谢您的帮助!
答案 0 :(得分:9)
您可以使用以下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>