首页 文章

Camel xpath toLowerCase并包含

提问于
浏览
2

我们正在申请骆驼 . 我需要处理一些xml消息(获取值\比较状态) . 为了解决这个问题,有一堆使用纯java编写的自定义处理器,但我被要求使用camel功能来改变它 . 代码示例:

.choice()
    .when().xpath("/Response/Header/Status = 'OK' ")......

这工作正常 .

现在我需要将提示与其他提示进行比较,为此我需要设置以下值:

/Response/Header/Hint

小写并检查包含 . 如果 - / Response / Header / Hint值(例如:

<Hint>MyHint</Hint>
  • 小写包含“提示”然后路由到...否则....我不是xpath专家和骆驼看起来像这有一些变化,所以你能帮我这个 .

还有一件我感兴趣的事情,如何在向前传递消息之前删除整个<Hint> MyHint </ Hint>(删除一些标签)

你可以建议一些教程快速进入骆驼的xpath .

2 回答

  • 1

    您可以使用 fn:lower-case(string) 来比较提示,如How can I convert a string to upper- or lower-case with XSLT?中所述 .

    关于删除 <Hint> 标签,您有多种可能性,例如:

  • 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!

相关问题