开发者社区> 问答> 正文

Spring集成流过滤和转换

我有一些XML,试图通过集成流程获得。这是我正在执行的步骤:

  • 如果消息包含XML节点,则将其过滤掉:“ filterMe”并且具有type =“ filterType”-如果是这样,我就不想处理它。
  • 将其从XML转换为Kotlin类,并在消息中添加一些标头。 我找不到一种方法来正确过滤2个XML属性上的消息。任何帮助非常感谢。

这是一些XML示例

<?xml version="1.0" encoding="UTF-8"?>
<Response type="filterType">//Filter on this
   <event>
      <header>
         <type>Test</type>
      </header>
      <body>
         <filterMe>filter me out</filterMe> //Filter this too
      </body>
   </event>
</Response>

整合流程

        return IntegrationFlows
                .from(inputChannel)
                .filter("filterMe"::contains)
                .transform { payload: String ->
                    val jsonMessage = XML.toJSONObject(payload).toString()

问题来源:Stack Overflow

展开
收起
montos 2020-03-25 23:31:51 537 0
1 条回答
写回答
取消 提交回答
  • 考虑精益XPath

    使用中的Spring Integration,filter()您可以这样做:

    .filter(payload -> 
                    XPathUtils.evaluate(payload, "/Response/@type = \"filterType\" and //filterMe", 
                                        XPathUtils.BOOLEAN))
    

    注意:您应该spring-integration-xml在classpath中具有访问权限XPathUtils。

    回答来源:Stack Overflow

    2020-03-25 23:32:47
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多