<td></td><td>foo</td>
戻りたい['', 'foo']のですが、libxml の xpath//td/text()は['foo']. ''(一致しない) の代わりに空のタグを見つけるにはどうすればよいですか?
@Tomalak は完全に正しいですが、XPath 2.0 では以下を使用できます。
//td/string(.)
tdこれにより、一連の文字列が生成されます。各文字列には、対応する要素の文字列値が含まれています。
したがって、あなたの場合、結果は望ましいものになります。
"", "foo"
テキスト ノードを具体的に選択している限り、それはできません。最初の にはテキスト ノードがないため<td>です。
XPath 式を に変更すると、2 つのノード'//td'が取得されます。<td>その後の処理でそれらのテキスト値を使用します。