12

<td></td><td>foo</td>

我想返回['', 'foo'],但 libxml 的 xpath//td/text()只返回['foo']. 如何找到空标签''而不是(不匹配)?

4

2 回答 2

8

虽然@Tomalak 完全正确,但在 XPath 2.0 中可以使用

//td/string(.)

这会产生一系列字符串——每个字符串都包含相应td元素的字符串值。

因此,在您的情况下,结果将是所需的结果:

"", "foo"

于 2010-03-11T19:19:27.193 回答
7

只要您专门选择文本节点,就不能。因为第一个中根本没有文本节点<td>

当您将 XPath 表达式更改为 时'//td',您将获得两个<td>节点。在进一步处理中使用它们的文本值。

于 2010-03-11T09:57:51.833 回答