【发布时间】:2016-07-08 19:35:28
【问题描述】:
我对 xpath 非常陌生,希望能得到一些指导。我有以下 XML:
<dd class="conten1">
<li class="">
<b> Some text here </b>
<b> another text here </b>
<span class="date-range">2014 – Present</span>
</li>
</dd>
我已经运行了以下 xpath:
.//dd[contains(@class, 'conten1')]/li
然后它返回:
这里有一些文字,这里有另一种文字2014 - 现在
如何删除“span”部分并仅获取
这里有一段文字,这里有一段文字
我跑了
substring-before(.//dd[contains(@class, 'conten1')]/li,'201')
但这并不理想,因为一些主菜不包含该跨度部分,因此根本不会被检索到。
我希望抓住的只是“这里有一些文字,这里有另一种文字”部分。
真的希望得到一些帮助,并在此先感谢您。
【问题讨论】:
-
在路径的末尾尝试 /text()...
-
感谢您,这对您有很大帮助。如果文本采用以下格式 text 1 text 2你知道该抓什么的标准是什么?您只想要来自
<b>元素的所有文本吗?来自非<span>元素的所有文本? XPath 表达式'Some text here another text here'会满足您的要求,但我认为这不是您想要的。