如何使用相同的XSLT Transformer调用不同的XSL资源

时间:2014-03-07 09:29:34

标签: spring-integration

我必须根据输入XML中设置的某些基础调用2个不同的XSL。

我不想为此任务编写2个单独的变换器。目前的代码是这样编写的

 <int:router input-channel="inputchannel"
       default-output-channel="outputChannel" expression="headers.get('someValue')">

      <int:mapping value="x" channel="xChannel" />
      <int:mapping value="y" channel="yChannel" />

 </int:router>

 <int-xml:xslt-transformer inputChannel="xChannel" output-channel= "output"
                xsl-resource="xRelated.xsl" />
 <int-xml:xslt-transformer inputChannel="yChannel" output-channel="output"
                xsl-resource="yRelated.xsl" />

然而,这似乎是一个肮脏的解决方案,因为这只是一个样本。我将有14种不同类型的XSL。有没有人有想法,我怎么能重新考虑这一点。

1 个答案:

答案 0 :(得分:0)

Spring Integration XsltPayloadTransformer依赖于TransformerFactory抽象,它基于来自基础XSTL的Templates来生成Source

因此,看起来没有选择只有一个组件可以同时处理多个XSLT。

如果知道可以提供所需解决方案的其他XSLT引擎,那就太棒了,但它不能基于标准TransformerFactory