Is it possible to apply normalize-space to all nodes XPath expression finds?

后端 未结 2 671
悲哀的现实
悲哀的现实 2020-12-06 11:26

Consider simple XML document:


Item 1
Item 2
2条回答
  •  臣服心动
    2020-12-06 11:49

    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 ["Item 1", "Item 2"]?

    Not in XPath 1.0.

    In Xpath 2.0 this is simple:

    /html/body/table/tr/td/text()/normalize-space(.) 
    

    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:string items, each of which is the result of applying normalize-space() on the context node (any node selected by the subexpression that precedes the last location step).

提交回复
热议问题