Java Camel xpath为小写,包含
在我们的应用程序中,我们正在迁移到camel。我需要处理一些xml消息(获取值\比较状态)。为了解决这个问题,我们使用纯java编写了一堆定制处理器,但我被要求使用camel特性来更改它。 代码示例:Java Camel xpath为小写,包含,java,xpath,apache-camel,Java,Xpath,Apache Camel,在我们的应用程序中,我们正在迁移到camel。我需要处理一些xml消息(获取值\比较状态)。为了解决这个问题,我们使用纯java编写了一堆定制处理器,但我被要求使用camel特性来更改它。 代码示例: .choice() .when().xpath("/Response/Header/Status = 'OK' ")...... 这很好用 现在我需要将提示与其他提示进行比较,为此,我需要设置以下值: /Response/Header/Hint 降低大小写并检查是否包含。 If-/Re
.choice()
.when().xpath("/Response/Header/Status = 'OK' ")......
这很好用
现在我需要将提示与其他提示进行比较,为此,我需要设置以下值:
/Response/Header/Hint
降低大小写并检查是否包含。
If-/Response/Header/Hint值(例如:
<Hint>MyHint</Hint>
MyHint
-到小写包含“提示”,然后路由到…否则路由到。。。。
我不是xpath专家,camel看起来对此有一些更改,所以您能帮我解决这个问题吗
还有一件事我很感兴趣,我如何在转发消息之前删除整个您可以建议一些教程快速学习camel的xpath。您可以使用
fn:lower case(string)
来比较提示,如中所述
关于删除
标记,您有多种可能性,如:
.choice()
.when().xpath("/Response/Header/Status/text() = 'OK'")
.to("xslt:xsl/RemoveTag.xsl")
.choice().when().xpath("//Response/Header/Hint[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'hint')]").to
RemoveTag.xsl是一个小改动
非常感谢olivier roger!使用XSLT过滤内容,如使用XSLT删除xml标记中所示。工作非常完美!我测试失败,可能添加了一些修剪空间\删除了一些,但是,我可以看到消息已正确转换,谢谢!现在将首先尝试听到这一消息,如果它解决了您的问题,您能接受答案吗?(请参阅)我需要15个信誉才能接受,有了它,我会接受的!再次感谢!