Я хотел бы объединить две XML-части.
Мне нравится создавать динамический XSLT, который мы можем использовать для разных конверсий.
Для динамической части у меня есть идея создать шаблон структуры, который содержит необходимый вывод.
ВХОД / ИСТОЧНИК
<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<Transport>
<Cars>
<line>
<brand>Opel</brand>
<type>Corsa</type>
</line>
</Cars>
<CarPrices>
<line>
<price>12000</price>
<country>Belgium</country>
<OptionPrices>
<line>
<introductionKit>400</introductionKit>
</line>
</OptionPrices>
</line>
<line>
<price>15000</price>
<country>Holland</country>
</line>
</CarPrices>
<colors>
<line>
<color>red</color>
</line>
<line>
<color>blue</color>
</line>
</colors>
</Transport>
<Transport>
<Cars>
<line>
<brand>Opel</brand>
<type>Omga</type>
</line>
</Cars>
<CarPrices>
<line>
<price>16000</price>
<country>Germany</country>
</line>
</CarPrices>
<Engine>
<line>
<fuel>diesel</fuel>
<type>1.6</type>
</line>
</Engine>
</Transport>
</DATA>
Шаблон вывода
сделанный на заказ
Элементы, содержащие данные, будут видны под родительским элементом.
<?xml version="1.0" encoding="UTF-8"?>
<Cars>
<line>
<CarPrices>
<line>
<OptionPrices/>
</line>
</CarPrices>
<colors>
</colors>
<Engine>
</Engine>
<Measurements>
</Measurements>
</line>
</Cars>
Желаемый вывод
<?xml version="1.0" encoding="UTF-8"?>
<Cars>
<line>
<brand>Opel</brand>
<type>Corsa</type>
<CarPrices>
<line>
<price>12000</price>
<country>Belgium</country>
<OptionPrices>
<line>
<introductionKit>400</introductionKit>
</line>
</OptionPrices>
</line>
<line>
<price>15000</price>
<country>Holland</country>
<OptionPrices/>
</line>
</CarPrices>
<colors>
<line>
<color>red</color>
</line>
<line>
<color>blue</color>
</line>
</colors>
<Engine>
<line/>
</Engine>
<Measurements>
</Measurements>
</line>
<line>
<brand>Opel</brand>
<type>Omga</type>
<CarPrices>
<line>
<price>16000</price>
<country>Germany</country>
<OptionPrices/>
</line>
</CarPrices>
<colors/>
<Engine>
<line>
<fuel>diesel</fuel>
<type>1.6</type>
</line>
</Engine>
<Measurements>
</Measurements>
</line>
</Cars>
Я пробовал разные вещи, но не с правильным поведением / результатом.
По просьбе я предпочитаю динамическое преобразование. Если у нас есть другой вход (например, велосипеды с одинаковой структурой), это тоже сработает.
примечание: например, Измерения не на входе, но они нужны нам на выходе.
Спасибо за вашу помощь.
edit: только для xslt 1.0