我们正在申请骆驼。我需要处理一些xml消息(获取值\比较状态)。为了解决这个问题,有一堆使用纯java编写的自定义处理器,但我被要求使用camel功能来改变它。 代码示例:
.choice()
.when().xpath("/Response/Header/Status = 'OK' ")......
这很好用。
现在我需要将提示与其他一些提示进行比较,为此我需要设置值:
/Response/Header/Hint
小写并检查包含。 如果 - / Response / Header / Hint值(例如:
<Hint>MyHint</Hint>
- 小写包含“提示”然后路由到...否则.... 我不是xpath专家,骆驼看起来有一些变化,所以请你帮帮我。
我感兴趣的另一件事是,如何删除整个&lt;提示&GT; MyHint&LT; /提示&GT;在向前传递消息之前(删除一些标签)
你可以建议一些教程快速进入骆驼的xpath。
答案 0 :(得分:1)
您可以使用fn:lower-case(string)
来比较提示,如How can I convert a string to upper- or lower-case with XSLT?中所述。
关于移除<Hint>
标签,您有多重可能性,例如:
答案 1 :(得分:1)
答案是:
.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变小了remove xml tags with XSLT 非常感谢olivier roger!