我只想选择前一个节点,如果它是一个文本节点(并且只包含空格)。我有一个像这样的XPath:path/preceding-sibling::node()[1][normalize-space()='']
。这很好用但匹配文本和元素节点(如果节点只包含空格)。使用path/preceding-sibling::text()[1][normalize-space()='']
将选择第一个作为文本节点的前一个节点,如果中间有任何元素,那么它绝对不是我想要的。
如何组合这两项测试?
答案 0 :(得分:1)
您可以使用self::text()
来测试当前node
是否为文本节点,如下所示:
path/preceding-sibling::node()[1][self::text() and normalize-space()='']