我使用spring集成来从传出通道中获取消息。每条消息的格式如下:
<message>
<properties>
<property>
<key>a</key>
<value>b</value>
</property>
<property>
<key>c</key>
<value>d</value>
</property>
</properties>
</message>
对于每个消息,我想解析密钥a的值b并写入磁盘。我怎样才能在spring集成中做到这一点?
答案 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的实现。