当值有多个空格时计算xpath

当值有多个空格时计算xpath,xpath,Xpath,我想计算xpath中包含多个空格的值。 eg-abc定义abc后的2个空格 当abc-abc def后面只有1个空格时,xpath的计算结果为 //div[text()='"abc def"'] 但是在增加空间时,它无法定位xpath。xpath函数似乎就是您要寻找的: //div[normalize-space(text())='"abc def"'] 使用以下输入进行测试: <root> <div>"abc def"</div> <

我想计算xpath中包含多个空格的值。 eg-abc定义abc后的2个空格 当abc-abc def后面只有1个空格时,xpath的计算结果为

//div[text()='"abc def"']
但是在增加空间时,它无法定位xpath。

xpath函数似乎就是您要寻找的:

//div[normalize-space(text())='"abc def"']
使用以下输入进行测试:

<root>
    <div>"abc def"</div>
    <div>"abc   def"</div>
    <div>"abc       def"</div>
</root>
输出为:

Element='<div>"abc def"</div>'
Element='<div>"abc   def"</div>'
Element='<div>"abc      def"</div>'

如果您使用的是Xpath 2.0,则可以使用匹配项:


在文本中,空格与任何其他字符一样。所以寻找 text=abc def应该可以正常工作

除abc和def之间的两个空格外, 不要用单引号和双引号引用文本:

//div[text()="abc  def"]

您使用什么工具或语言来计算这些XPath表达式?如果是XSLT或其他系统,其中XPath表达式在XML属性中给出,那么请记住,在将表达式传递给XPath解析器之前,XML解析器会将属性值中的所有空格规格化为一个空格。我正在使用firebug评估XPath表达式。您可以测试它是否正确通过按照JavaScript规则转义空格-$x//div来搞乱空格[text='abc\u0020\u0020def'。另一个问题是,您试图匹配的HTML中的字符是否真的是空格U+0020,或者它们是否是看起来相同的其他字符,例如无中断空格U+00A0。在我的例子中,规范化空格仅适用于1个空格。规范化空格用于删除尾随空格。此处这些空间是有意保留的。
//div[text()="abc  def"]