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