我想使用XPath通过text()函数
获取修改后的字符串列表示例代码:
<div>
<p>
Monday 2/4/13
</p>
<p>
Tuesday 2/5/13
</p>
</div>
现在在这个例子中,如果我想在
标记之间获取文本数组,我会写一个表达式,例如 .// div / p /文本()的。但是,如果我只想获取日期,我可以使用substring-after函数,但代码 substring-after(.// div / p / text(),'')只能抓取一个要素。如何编写此表达式以获取所有文本元素?
答案 0 :(得分:2)
在 XPath 2.0 中,您可以直接在text()
中使用该功能:
//div/p/substring-after(text(), ' ')
在 XPath 1.0 中,只有一个表达式无法实现,因为:
substring-after()
函数将 string
作为第一个参数,而不是node-set
所以,在1.0中,你最好的选择是(你必须为每个节点重复一次 - 注意它只返回一个字符串):
concat(substring-after(//div/p[1]/text(), ' '),
' ',
substring-after(//div/p[2]/text(), ' '))