使用XPath如何在特定位置(也是text())选择一个node()?

时间:2015-05-16 14:28:49

标签: xpath

我只想选择前一个节点,如果它是一个文本节点(并且只包含空格)。我有一个像这样的XPath:path/preceding-sibling::node()[1][normalize-space()='']。这很好用但匹配文本和元素节点(如果节点只包含空格)。使用path/preceding-sibling::text()[1][normalize-space()='']将选择第一个作为文本节点的前一个节点,如果中间有任何元素,那么它绝对不是我想要的。

如何组合这两项测试?

1 个答案:

答案 0 :(得分:1)

您可以使用self::text()来测试当前node是否为文本节点,如下所示:

path/preceding-sibling::node()[1][self::text() and normalize-space()='']