如何在Spring中解析XML消息有效负载?

时间:2016-09-29 19:43:20

标签: java spring spring-integration

我使用spring集成来从传出通道中获取消息。每条消息的格式如下:

<message>
  <properties>
    <property>
      <key>a</key>
      <value>b</value>
    </property>
    <property>
      <key>c</key>
      <value>d</value>
    </property>
  </properties>
</message>

对于每个消息,我想解析密钥a的值b并写入磁盘。我怎样才能在spring集成中做到这一点?

2 个答案:

答案 0 :(得分:1)

XpathSplitter对传入的文档执行一些xpath,并为匹配的部分生成子文档。

根据提供的xpath,可以定期XPathTransformer提取传入文档的部分。

要存储到磁盘,您应该使用FileWritingMessageHandler

目前尚不清楚为什么参考手册不足以找到答案......

答案 1 :(得分:0)

您可以使用Spring Integration中的 UnmarshallingTransformer ,请参阅此官方documentation

  

UnmarshallingTransformer 允许解组 XML源   使用Spring OXM Unmarshaller的实现。 Spring的   Object / XML Mapping支持提供了几种支持的实现   使用JAXB,Castor和JiBX进行编组和解组   其他。 unmarshaller需要Source的一个实例。如果   消息有效负载不是Source的实例,转换将是   尝试。目前String,File和org.w3c.dom.Document有效负载   得到支持。也支持自定义转换为源   注入SourceFactory的实现。