Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Camel xpath为小写,包含_Java_Xpath_Apache Camel - Fatal编程技术网

Java Camel xpath为小写,包含

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

在我们的应用程序中,我们正在迁移到camel。我需要处理一些xml消息(获取值\比较状态)。为了解决这个问题,我们使用纯java编写了一堆定制处理器,但我被要求使用camel特性来更改它。 代码示例:

.choice()
    .when().xpath("/Response/Header/Status = 'OK' ")......
这很好用

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

/Response/Header/Hint
降低大小写并检查是否包含。 If-/Response/Header/Hint值(例如:

<Hint>MyHint</Hint> 
MyHint
-到小写包含“提示”,然后路由到…否则路由到。。。。 我不是xpath专家,camel看起来对此有一些更改,所以您能帮我解决这个问题吗

还有一件事我很感兴趣,我如何在转发消息之前删除整个MyHint(删除一些标记)


您可以建议一些教程快速学习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个信誉才能接受,有了它,我会接受的!再次感谢!