Java 弹簧积分流量滤波器与变换

Java 弹簧积分流量滤波器与变换,java,spring,spring-boot,kotlin,spring-integration,Java,Spring,Spring Boot,Kotlin,Spring Integration,我有一些XML,我正试图通过一个集成流获得它们。以下是我正在执行的步骤: 如果消息包含XML节点:“filterMe”并且具有type=“filterType”,则过滤掉消息-如果是,我不想处理它 将其从XML转换为Kotlin类,并向消息中添加一些头 我找不到在2个XML属性上正确过滤消息的方法。非常感谢您的帮助 下面是一些XML示例 <?xml version="1.0" encoding="UTF-8"?> <Response type="filterType">

我有一些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>
考虑倾斜

使用
filter()
中的Spring集成,您可以执行以下操作:

.filter(payload -> 
                XPathUtils.evaluate(payload, "/Response/@type = \"filterType\" and //filterMe", 
                                    XPathUtils.BOOLEAN))
注意:您应该在类路径中有
spring集成xml
,才能访问
XPathUtils

考虑精简

使用
filter()
中的Spring集成,您可以执行以下操作:

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

注意:您应该在类路径中有
spring集成xml
,才能访问
XPathUtils

非常感谢,这非常有效。我还学到了很多关于x路径的知识,所以也非常感谢。非常感谢,这非常有用。我还学到了很多关于x路径的知识,所以也非常感谢。