考虑简单的XML文档:
<html><body>
<table>
<tr><td> Item 1</td></tr>
<tr><td> Item 2</td></tr>
</table>
</body></html>
使用XPath /html/body/table/tr/td/text()
我们将获得
[" Item 1", " Item 2"].
是否可以修剪空白区域,例如使用normalize-space()
函数来获取此空间?
["Item 1", "Item 2"]
normalize-space(/html/body/table/tr/td/text())
仅产生第一个td标记["Item 1"]
答案 0 :(得分:10)
使用XPath “/ html / body / table / tr / td / text()”我们 将得到[“第1项”,“第2项”]。
是否可以修剪空白区域 使用normalize-space()的示例 得到[“第1项”,“第2项”]的函数?
不在XPath 1.0中。
在Xpath 2.0中,这很简单:
/html/body/table/tr/td/text()/normalize-space(.)
在XPath 2.0中,XPath表达式的位置步骤可能是函数引用。这在上面的表达式中用于生成xs:string
项的序列,每个项都是在上下文节点上应用normalize-space()
的结果(由最后一个位置步骤之前的子表达式选择的任何节点)
答案 1 :(得分:2)
如果您使用的是XPath 2.0,则可以使用/html/body/table/tr/td/normalize-space(.)
。
如果您遇到XPath 1.0,我不相信这是可能的。你只需要循环生成的字符串并将它们标准化。