修剪骆驼路由中使用的xpath表达式
这可能是一个驼峰或xpath问题:)。非骆驼族注意:骆驼使用javax.xml.xpath解析他们的xml 在camel路径中,我试图从xml正文中提取一个元素作为我的文件名:修剪骆驼路由中使用的xpath表达式,xpath,apache-camel,Xpath,Apache Camel,这可能是一个驼峰或xpath问题:)。非骆驼族注意:骆驼使用javax.xml.xpath解析他们的xml 在camel路径中,我试图从xml正文中提取一个元素作为我的文件名: Namespaces ns=getNamespaces(); 字符串fileIDxPath=(参见注释); from(“直接:testOutToFile”) .setHeader(Exchange.FILE_NAME,ns.xpath(fileIDxPath)) .to(“文件:/tmp/testing/generate
Namespaces ns=getNamespaces();
字符串fileIDxPath=(参见注释);
from(“直接:testOutToFile”)
.setHeader(Exchange.FILE_NAME,ns.xpath(fileIDxPath))
.to(“文件:/tmp/testing/generatedXML”);
但我似乎无法得到一个xpath,它可以为我提供节点的修剪值。以下是我尝试过的xpath:
A) //rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/
B) //rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text()
C) //rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text()[normalize-space()]
D) normalize-space(//rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text())
- A) 返回整个节点,而不仅仅是值
- B) 返回值,但包含大量空白
- C) 还返回包含所有空格的值
- D) 抛出XPathExpressionException
罗伊你试过: 规范化空间(//rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId)
试试这个……它在2.8-SNAPSHOT中运行良好
.setHeader(Exchange.FILE_NAME,
XPathBuilder.xpath("normalize-space(//rm:TradeMsg/rm:Submitter/rm:partyTradeIdentifier/fpml:tradeId/text()", String.class))
谢谢Anthony-刚刚试过,得到了XPathExpressionException,比如案例D。