使用XPath连接所有子节点

时间:2015-12-03 04:43:55

标签: xpath

我需要一个XPath来连接所有< ns1:string>文本:

XML:

<ns2:texts>  
  <ns1:string>ABCD</ns1:string>  
  <ns1:string>PQRS</ns1:string>  
  <ns1:string>XYZ</ns1:string> 
</ns2:texts>

预期产出:

ABCD PQRS XYZ

提前致谢

2 个答案:

答案 0 :(得分:3)

在XPath 1.0中,

如果<ns2:texts>仅包含<ns1:string>个元素,您可以使用:

normalize-space(//ns2:texts)

输出:ABCD PQRS XYZ

请参阅http://www.xpathtester.com/xpath/e4c7a4daf085c56243b803427e90bdfe

答案 1 :(得分:1)

在XPath 1.0中不可能,除非你有一个固定数量的var promise = asyncmethod(some_var); promise.then(function (sv) { console.log(sv + ' Yes it worked'); }, function (em) { console.log(sv + ' No it failed'); }); ,我认为不太可能。在XPath 2.0中,您可以使用ns:string函数,如下所示:

string-join()

<强> xpathtester demo

输入:

string-join(//ns1:string, ' ')

输出

<ns2:texts xmlns:ns2="foo" xmlns:ns1="bar">  
  <ns1:string>ABCD</ns1:string>  
  <ns1:string>PQRS</ns1:string>  
  <ns1:string>XYZ</ns1:string> 
</ns2:texts>