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
我已将以下 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