根据您的具体情况,有不同的 XPath 表达式将选择节点,其值包含一些空格。
首先,让我们回忆一下这些字符中的任何一个都是“空白”:
	 -- 标签

 -- 换行

 -- 回车
' ' 或   -- 空格
如果你知道节点的确切值,说它是“Hello World”加一个空格,那么最直接的 XPath 表达式:
/top/aChild[. = 'Hello World']
将选择此节点。
然而,指定一个包含空格的值的困难在于,我们将所有的空格字符都视为......好吧,空格并且不知道它是否是一个一组空格或一个制表符。
在XPath 2.0 中可以使用regular expressions,它们提供了一种简单方便的解决方案。因此我们可以使用如下的 XPath 2.0 表达式:
/*/aChild[matches(., "Hello\sWorld")]
选择顶部节点的任何子节点,其值为字符串“Hello”后跟空格,后跟字符串“World”。 注意使用matches() 函数和匹配空格的“\s”模式。
在XPath 1.0中,如果给定字符串包含任何空白字符,一个方便的测试是:
not(string-length(.)= stringlength(translate(., ' 	

','')))
这里我们使用translate() 函数消除四个空白字符中的任何一个,并将结果字符串的长度与原始字符串的长度进行比较。
因此,如果在文本编辑器中,节点的值显示为
“你好 世界”,
我们可以使用 XPath 表达式安全地选择这个节点:
/*/aChild[translate(., ' 	

','') = 'HelloWorld']
在许多情况下,我们还可以使用 XPath 函数normalize-space(),它从其字符串参数生成另一个字符串,其中前导和尾随空白组被剪切,并且字符串中的每个空白都被单个空格替换。
在上述情况下,我们将简单地使用以下 XPath 表达式:
/*/aChild[normalize-space() = 'Hello World']