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