Consider simple XML document:
<html><body>
<table>
<tr><td> Item 1</td></tr>
<tr><td> Item 2</td></tr>
</table>
</body></html>
Using XPath /html/body/table/tr/td/text() we will get
[" Item 1", " Item 2"].
Is it possible to trim white space, for example using normalize-space() function to get this?
["Item 1", "Item 2"]
normalize-space(/html/body/table/tr/td/text()) yields trimmed contents of only the first td tag ["Item 1"]
Not in XPath 1.0.
In Xpath 2.0 this is simple:
In XPath 2.0 a location step of an XPath expression may be a function reference. This is used in the expression above to produce a sequence of
xs:stringitems, each of which is the result of applyingnormalize-space()on the context node (any node selected by the subexpression that precedes the last location step).