我有一个xml有效负载,如下所示,
<ret:msgData xmlns:ret="http://example.com/ret" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<users>
<fbuser>user1</fbuser>
<fbuser>user2</fbuser>
<googleuser>user2</googleuser>
</users>
</ret:msgData>
从这个有效载荷我需要所有的fbuser节点。 为此我在esb中的属性mediator中使用了xpath。 但它给了我价值而不是节点。
<property xmlns:ret="http://example.com/ret"
name="fbuser"
expression="//ret:msgData/users/fbuser"
scope="default"
type="STRING"/>
<log level="custom" separator=",">
<property name="fbuser" expression="get-property('fbuser')"/>
</log>
打印的输出是user1user2 相反,我正在寻找输出如下。
<fbuser>user1</fbuser>
<fbuser>user2</fbuser>
当我在http://www.freeformatter.com/xpath-tester.html中测试xpath时 相同的代码给了我正确的输出。
请建议。
答案 0 :(得分:0)
老实说,使用XSLT可以更好地解决这个问题,XSLT用于将XML从一个应用程序提取/转换为另一个应用程序。