Mulesoft XSLT流式处理大型xml文件

Mulesoft XSLT流式处理大型xml文件,xslt,mule,Xslt,Mule,我目前正在使用Mulesoft 3.6 CE。我有一个很大的xml文件,我想把它分割成小的xml元素并推送到jms队列。我试图探索XSLT选项,以使用mule的开箱即用流功能实现这一点,而无需编写代码 例如,我有一个传入文件作为 <books> <book> <isbn>1</isbn> <title>Book 1</isbn> </book> <book>

我目前正在使用Mulesoft 3.6 CE。我有一个很大的xml文件,我想把它分割成小的xml元素并推送到jms队列。我试图探索XSLT选项,以使用mule的开箱即用流功能实现这一点,而无需编写代码

例如,我有一个传入文件作为

<books> 
   <book>
     <isbn>1</isbn>
     <title>Book 1</isbn>
   </book>
   <book>
     <isbn>2</isbn>
     <title>Book 2</isbn>
   </book>
....
</books>
我想在下面的代码片段中将每个元素写入JMS队列

<book>
    <isbn>1</isbn>
    <title>Book 1</isbn>
</book>
任何帮助都将不胜感激

问候,,
Srinivas

既然Mule确实支持XSLT2.0/3.0,假设ISBN是唯一的,您可能可以尝试类似的方法

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" encoding="UTF-8" indent="yes" />

    <xsl:template match="/books/book">
        <xsl:result-document method="xml" href="output_{isbn}.xml">
          <xsl:copy-of select="." />
        </xsl:result-document>
    </xsl:template>
</xsl:transform>
我不认为在没有自定义代码或单独端口的情况下,您将能够捕获其输出,但我也不能100%确定Mule将如何处理此问题

老实说,我怀疑您是否能从中获得良好的性能——至少,我认为,如果只是不断删除这些节点并将它们传递给JMS队列,它的性能不如Java中的前向读取器XMLStreamReader