2014-01-15 122 views
0

输入看起来像下面从报头中提取的属性值,在骆驼

<book author="ABC" type="Children"> 
    <id>123</id> 
    <name>XYZ</name> 
</book> 

我已设置的上述报头中的XML路线为:

<camel:setHeader headerName="REQUEST"> 
    <camel:xpath>/node()</camel:xpath> 
</camel:setHeader> 

现在,我想从该标题中提取作者的值(即ABC)并将其设置为另一个标题。我尝试使用下面的代码,但它失败了。

<camel:setHeader headerName="AUTHOR"> 
    <camel:xquery type="java.lang.String">{data($REQUEST/@author)}</camel:xquery> 
</camel:setHeader> 

什么应该是提取设置标题的正确方法?

+0

为什么不根据用户设定的'REQUEST'头同时设置了'AUTHOR'头?作者属性的xpath将直截了当。 – Ralf

+0

只有某些操作成功时,我才必须设置第二个标头 – SAM

回答

0

设置这个头正确的方法是:

<camel:setHeader headerName="AUTHOR"> 
    <camel:xpath>in:header('REQUEST')/@author</camel:xpath> 
</camel:setHeader>