0
我想要理清SOAP標頭的某個節點,以便在apache駱駝中執行粘性負載平衡。 而對於我使用XPath的 和我的XPath表達式看起來是這樣的:在apache駱駝的Xpath表達式中使用Substring:錯誤
.loadBalance().sticky(xpath("substring(string(/*[local-name()='Envelope']/*[local-name()='Header']/*[local-name()='ReplyTo']/*[local-name()='ReferenceParameters']/*[local-name()='ServiceGroupId']/text()), 10)"))
.to(BE1,BE2);
但是,當我執行它,我得到一個錯誤:org.apache.camel.builder.xml.InvalidXPathExpression: Invalid xpath:
所以我想應該有一些問題我的xpath表達式,因此我創建了一個小型java程序,可以執行相同的操作並執行相同的操作。 而用java我從我的XML獲得所需的元素。但我在apache駱駝中得到這個錯誤。
我在這裏做錯了什麼嗎?任何幫助將非常感激。
您的XPath是正確的,適用於我的http://p3rl.org/XML::XSH2 – choroba
如果xpath返回的節點數大於1,那麼我認爲string()和substring()函數將失敗 – Jayy
@KaipaMSarma,不,只要參數是節點集,這些函數就會對第一個節點的字符串值進行操作。 –