【发布时间】:2016-12-11 06:03:31
【问题描述】:
我有这个 HTML:
<span id="bla">text</span>more text
我想得到text和more text。
我有这个 XPath:
//span[@id="bla"]/text()
我不知道如何获取结束标签以及它后面的内容。
【问题讨论】:
我有这个 HTML:
<span id="bla">text</span>more text
我想得到text和more text。
我有这个 XPath:
//span[@id="bla"]/text()
我不知道如何获取结束标签以及它后面的内容。
【问题讨论】:
more text 称为元素的“尾部”,可以通过following-sibling 检索:
//span[@id="bla"]/following-sibling::text()
【讨论】:
<span id="bla">text</span>more text 本身的格式不正确,无法通过 XPath 处理。
让我们把它放在上下文中:
<div><span id="bla">text</span>more text</div>
然后,你可以简单地取父元素的字符串值,div:
string(/div)
得到
textmore text
根据要求。
如果有其他您不想要的周边内容:
<div>DO NOT WANT<span id="bla">text</span>more text<b/>DO NOT WANT</div>
您可以按照@alecxe 的引导使用following-sibling:: 轴并使用concat() 组合您想要的部分:
concat(//span[@id="bla"], //span[@id="bla"]/following-sibling::text()[1])
再次获得
textmore text
根据要求。
【讨论】: