我正在使用有效负载工厂,我想选择父节点的所有子节点。问题是当我使用不同的Xpath表达式选择所有子节点时,它返回值但没有节点。
所以而不是得到我想要的东西
<child1>value1</child1>
<child2>value2</child2>
<child3>value3</child3>
我收到了这个
value1value2value3
到目前为止我尝试过的不同Xpath表达式是
parent/child::node()
parent/node()
parent//*
答案 0 :(得分:1)
如果您引用叶节点,您将获得它们的值。 如果您引用具有子节点的节点,您将获得xml片段。
输入讯息:
<parent>
<child>value1</child>
<child>value2</child>
<child>value3</child>
</parent>
Payload工厂:
<payloadFactory media-type="xml">
<format>
<result xmlns="">
$1
</result>
</format>
<args>
<arg evaluator="xml" expression="//parent"/>
</args>
</payloadFactory>
结果:
<result>
<parent>
<child>value1</child>
<child>value2</child>
<child>value3</child>
</parent>
</result>
Payload工厂:
...
<arg evaluator="xml" expression="//child"/>
...
结果:
<result>value1value2value3</result>
不知道如何使用payloadFactory解决这个问题,但您可以使用XSLT或javascript
使用javascript的示例:
<script language="js"><![CDATA[
mc.setPayloadXML(<result>{mc.getPayloadXML()..*::child}</result>);
]]></script>