Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Concatenate multiple node values in xpath

I have a XML that looks like this

<element1>     <element2>         <element3>                 <element4>Hello</element4>             <element5>World</element5>         </element3>         <element3>                 <element4>Hello2</element4>             <element5>World2</element5>         </element3>         <element3>                 <element4>Hello3</element4>             <element5>World3</element5>         </element3>     </element2> </element1> 

I am trying to use Xpath to get a result like this:

Hello.World Hello2.World2 Hello3.World3 

I used concat function below but I did not get correct result.

Concat function:

concat(/element1/element2/element3/element4/text(),".", /element1/element2/element3/element5/text()) 

Result I got:

Hello.World 

How can I get the correct result? I am using XPath with Camel Spring DSL.

Edit:

Solutions in XQuery, XSLT and SPel are also appreciated.

Edit

I tried string-join and it did not work:

string-join function:

string-join((/element1/element2/element3/element4/text(), /element1/element2/element3/element5/text()),".") 

Result I got:

Hello.Hello2.Hello3.World.World2.World3 
like image 404
krishna2642 Avatar asked Feb 24 '14 19:02

krishna2642


2 Answers

Try this expression...

string-join(//element3/(concat(element4/text(), '.', element5/text())), "&#10;") 
like image 193
Tim C Avatar answered Sep 21 '22 00:09

Tim C


I used concat method and works well.

concat(//SomeElement/text(),'_',//OtherElement/text()) 
like image 45
prespic Avatar answered Sep 22 '22 00:09

prespic