输入如下所示,
<book author="ABC" type="Children">
<id>123</id>
<name>XYZ</name>
</book>
我已将xml路径中的属性设置为:
<camel:setProperty propertyName="REQUEST">
<camel:xpath>/node()</camel:xpath>
</camel:setProperty>
然后我做了一些其他的处理,并根据新的响应,我想从这个属性中提取作者的值(即ABC),并将其与响应中的元素的文本字符串进行比较。
我尝试了一些使用camel的方法:xpath和camel:simple但是无法从属性中提取值。
提取此属性的正确方法是什么?
答案 0 :(得分:0)
我不知道是否可以使用属性,但您应该能够使用标题。
首先:
<setHeader headerName="REQUEST">
<xpath>/node()</xpath>
</setHeader>
然后,如果你想只用作者值设置另一个标题:
<setHeader headerName="REQUEST2">
<xpath headerName="REQUEST" resultType="java.lang.String">/book/@author</xpath>
</setHeader>
或者,如果您想将该值评估为<choice>
条件:
<when>
<xpath headerName="REQUEST">/book/@author = 'ABC'</xpath>
答案 1 :(得分:0)
要使用简单访问REQUEST属性,您可以执行以下操作:
${property.REQUEST}
使用xpath访问属性:
<camel:xpath>
function:properties("REQUEST")/[add your xpath expression here]
</camel:xpath>
有关属性功能的更多信息,请访问此处 - https://camel.apache.org/xpath.html