我目前正在使用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
答案 0 :(得分:0)
由于Mule支持XSLT 2.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如何处理它。< / p>
说实话,我会质疑你是否会从中获得良好的表现 - 至少,我认为它的表现不如仅限前瞻的读者(Java中的XMLStreamReader) )只是继续删除那些<book>
节点并将它们传递给你的JMS队列。