Mule 遍历 xpath 结果

Mule iterate over xpath result

我已将以下 xml 设置为 payload 以便使用 splitter 组件迭代每个产品。

<root>
    <product>
        <id>1</id>
        <name>apple</name>
    </product>
    <product>
        <id>2</id>
        <name>orange</name>
    </product>
</root>

<splitter expression="#[xpath('//product')]" />

splitter 组件 returns 类型 org.dom4j.tree.DefaultElement 的对象,我在其上调用方法 asXML() 来获取单个产品的 xml.

第一次迭代

<product>
    <id>1</id>
    <name>apple</name>
</product>

第二次迭代

<product>
    <id>2</id>
    <name>orange</name>
</product>

我需要用 foreach 组件替换 splitter,但我遇到了一些麻烦。

<foreach collection="#[xpath('//product')]">
    ...
</foreach>

foreach 组件 returns 类型 org.apache.xerces.dom.ElementNSImpl 的对象,没有方法 asXML()。 知道如何按照第一个示例中的说明将产品'xml 获取为 String 吗?

多谢指教!

使用 Mule 的 dom-to-xml-transformer

参考:http://www.mulesoft.org/documentation/display/current/DomToXml+Transformer