Skip to main content
 首页 » 编程设计

xml之如何在Spring Integration的xpath-splitter组件中禁用xml header 生成

2025年05月04日33Terrylee

我的问题是<xpath-splitter> SI组件会生成带有xml-header的片段,从理论上讲,可以通过将基础转换器的omit-xml-declaration属性设置为“ yes”将其禁用

我怎样才能做到这一点?
使用<xpath-slitter>时如何设置此属性?

谢谢

请您参考如下方法:

嗯我们可以这样做:

TransformerFactory tf = TransformerFactory.newInstance(); 
Transformer transformer = tf.newTransformer(); 
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 


但是我们无法从 Transformer访问该 XPathMessageSplitter

我认为实现此 https://jira.spring.io/browse/INT-2042另一个更好的要求。

作为一种变通办法,现在您是否很难以 payload而不是 <xpath-splitter>的形式提供 Node的输入 String并以 List<Node>的形式获得结果。

之后,您可以提供一些自定义 <transformer>的代码:

Transformer transformer = TransformerFactory.newInstance().newTransformer(); 
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); 
StringResult result = new StringResult(); 
transformer.transform(new DOMSource(payload), result); 
return result.toString(); 


我们会在不久的将来解决JIRA问题。

谢谢!

更新

JIRA https://jira.spring.io/browse/INT-2042及其相关票证已在 output-properties配置选项中得到修复。