【发布时间】:2014-03-26 15:48:49
【问题描述】:
我有一个看起来像这样的 XML
<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>
我正在尝试使用 Xpath 来获得这样的结果:
Hello.World
Hello2.World2
Hello3.World3
我在下面使用了 concat 函数,但没有得到正确的结果。
连接函数:
concat(/element1/element2/element3/element4/text(),".", /element1/element2/element3/element5/text())
我得到的结果:
Hello.World
我怎样才能得到正确的结果? 我正在使用 XPath 和 Camel Spring DSL。
编辑:
XQuery、XSLT 和 SPel 中的解决方案也值得赞赏。
编辑
我尝试了字符串连接,但没有成功:
字符串连接函数:
string-join((/element1/element2/element3/element4/text(), /element1/element2/element3/element5/text()),".")
我得到的结果:
Hello.Hello2.Hello3.World.World2.World3
【问题讨论】:
-
在 XPath2.0 中有
string-join,在那里看起来更合适。但是,XSLT 是什么?我会在这里使用它。 -
添加了对字符串连接功能的编辑。还将 XSLT 添加到标签和请求的解决方案中。
-
要理解为什么会得到这个结果:通过返回节点集中文档顺序中第一个节点的字符串值,将节点集转换为字符串。
标签: xml xslt xpath xquery spring-el