2015-05-20 3 views
0

Я установил следующий xml как payload, чтобы перебирать каждый продукт, используя splitter.Mule iterate over xpath result

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

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

splitter компонент возвращает объект типа org.dom4j.tree.DefaultElement, на котором я вызываю метод asXML(), чтобы получить XML одиночного продукта.

Первая итерация

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

Вторая итерация

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

Мне нужно заменить splitter с foreach компонента, но у меня возникают некоторые проблемы.

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

foreach компонент возвращает объект типа org.apache.xerces.dom.ElementNSImpl, который не метод asXML(). Любая идея, как я могу получить product'xml как String, как объяснено в первом примере?

Спасибо за консультацию!

+0

являются типы литьевых каким-то образом? – vikingsteve

ответ