gpt4 book ai didi

java - Spring IntegrationFlow 过滤器和转换

转载 作者:行者123 更新时间:2023-12-02 01:00:48 24 4
gpt4 key购买 nike

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

  • 如果消息包含 XML 节点:“filterMe”且类型 =“filterType”,则将其过滤掉 - 如果是这样,我不想处理它。
  • 将其从 XML 转换为 Kotlin 类,并向消息添加一些 header 。

我无法找到一种方法来正确过滤 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()

最佳答案

考虑精益XPath

通过 filter() 中的 Spring Integration,您可以这样做:

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

注意:类路径中应该有 spring-integration-xml 才能访问该 XPathUtils

关于java - Spring IntegrationFlow 过滤器和转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60683722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com