我想根据TARGET的内容在文档中选择以下HTML。即如果TARGET匹配,请选择所有内容。但是,我不知道该去哪里:id('page')/x:div/span/a='TARGET'
- 如何使用父,子和兄弟表达式来获取包含div
,a
之前的div
br
},以及div
<a></a>
<div>
<br />
<span>
<a>TARGET</a>
<a></a>
<span>
<span>
<a></a>
</span>
<a></a>
<span></span>
</span>
<span>
<a></a>
</span>
</span>
</div>
<br />
<br />
标记
{{1}}
答案 0 :(得分:3)
使用单个XPath:
"//*[
(self::a and following-sibling::*[1][self::div and span/a='TRAGET']) or
(self::div and span/a='TARGET') or
(self::br and preceding-sibling::*[1][self::div and span/a='TARGET']) or
(self::br and preceding-sibling::*[2][self::div and span/a='TARGET'])
]"
请注意,由于未公开的 br 标记,您的文档格式不正确。此外,我没有包含任何名称空间,必要时可以添加。
答案 1 :(得分:1)
可能你应该先找到所有的div(不确定应该满足的条件):
//div[span[a[text()="TARGET"]]][preceding-sibling::*[1][name()="a"]][following-sibling::*[1][name()="br"]]
之后 - 每个div的所有相关元素:
./preceding-sibling::a[1]
./following-sibling::br[1]
./following-sibling::br[2]