foo
I would like to return [\'\', \'foo\']
but libxml\'s xpath //td/text()
returns j
As long as you are selecting text nodes specifically, you can't. Because there simply is no text node in the first <td>
.
When you change your XPath expression to '//td'
, you get the two <td>
nodes. Use their text value in further processing.
While @Tomalak is perfectly right, in XPath 2.0 one can use:
//td/string(.)
and this produces a sequence of strings -- each one containing the string value of a corresponding td
element.
So, in your case the result will be the desired one:
"", "foo"