<td></td><td>foo</td>
我想返回['', 'foo']
,但libxml的xpath //td/text()
只返回['foo']
。如何找到空标签''
而不是(不匹配)?
答案 0 :(得分:8)
虽然@Tomalak完全正确,但在XPath 2.0中可以使用:
//td/string(.)
这会产生一系列字符串 - 每个字符串都包含相应td
元素的字符串值。
因此,在您的情况下,结果将是所需的结果:
"", "foo"
答案 1 :(得分:6)
只要您专门选择文本节点,就不能。因为第一个<td>
中根本没有文本节点。
当您将XPath表达式更改为'//td'
时,您将获得两个<td>
个节点。在进一步处理中使用其文本值。