2014-01-15 155 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>