2015-02-02 2 views
1

Привет ниже мой входной XML Я хочу плюнуть XML построчно: Извлечение полей из XML с использованием мул разветвитель или XSLT

<root> 
 
    <row> 
 
    <Product>abc</Product> 
 
    <price>20</price> 
 
    <discount>10%</discount> 
 
    </row> 
 
    <row> 
 
    <Product>def</Product> 
 
    <price>120</price> 
 
    <discount>11%</discount> 
 
    </row> 
 
    <row> 
 
    <Product>ghi</Product> 
 
    <price>210</price> 
 
    <discount>5%</discount> 
 
    </row> 
 
</root> 
 

Вывод XML должен выглядеть следующим образом:

First XML

<trx> 
 
<Product>abc</Product> 
 
<discount>10%</discount> 
 
</trx>

Второй XML

 
 
<trx> 
 
<Product>def</Product> 
 
<discount>11%</discount> 
 
</trx>

И так далее.

Должен ли я использовать сплиттер или xslt, какой будет код xslt для этого. Мне нужно изменить имя корня, а также удалить цену поля из исходного XML.

+0

Для сделайте это в XSLT, вам понадобится процессор XSLT 2.0 или тот, который поддерживает элемент расширения, позволяющий выводить несколько документов в результате одного преобразования. –

+0

Так можно сделать это с мулом, и если я использую несколько документов, я могу заставить его пройти через поток –

+0

Боюсь, я ничего не знаю о Муле. Если он использует процессор Apache Xalan XSLT, тогда ответ будет отрицательным. Но если вы используете Java, то вы, наверное, сможете переключиться на саксон. –

ответ

1

Лучший способ, которым я нашел, - использовать сплиттер, а затем использовать преобразователь данных для изменения структуры. Таким образом, я использовал сплиттер первый и с помощью XPath я взял строку

[XPath («/ корень/*»)]

Тогда я использовал картограф данных, чтобы изменить его на мой желаемый формат

Смежные вопросы