После первого преобразования XSL У меня есть выход XML, похожий на следующий:Как объединить узлы на основе значения атрибута?
<?xml version="1.0" encoding="UTF-8"?>
<analysis type="1">
<file path="a.txt">
<line nb="23" found="true"/>
<line nb="36" found="true" count="2"/>
<line nb="98" found="true"/>
</file>
<file path="a.txt">
<line nb="100" found="false"/>
</file>
<file path="b.txt">
<line nb="10" found="false"/>
</file>
<!-- more file nodes below with different @path -->
</analysis>
Но теперь мне нужно, чтобы получить второй выход, где file
узлы объединены, если они имеют один и тот же атрибут path
следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<analysis type="1">
<file path="a.txt">
<line nb="23" found="true"/>
<line nb="36" found="true" count="2"/>
<line nb="98" found="true"/>
<line nb="100" found="false"/>
</file>
<file path="b.txt">
<line nb="10" found="false"/>
</file>
</analysis>
Не знаю, возможно @path
значения заранее.
Я просмотрел несколько сообщений о слиянии узлов, но не смог найти способ делать то, что хочу. Я потерялся с группировкой узлов, ключами, генерации id ... и только получил сообщения об ошибках.
Не могли бы вы помочь мне получить второй выход, начиная с первого (с xls 1.0)? И если бы вы могли предоставить некоторые ссылки (сайты), где я мог бы найти объяснения в отношении таких преобразований, это было бы действительно здорово.
Примечание: атрибут двух line
узлов двух file
узлов, имеющих один и тот же @path
никогда не конфликтуют @nb
, он уникален, то это никогда не произойдет:
<?xml version="1.0" encoding="UTF-8"?>
<analysis type="1">
<file path="a.txt">
<line nb="36" found="true" count="2"/>
</file>
<file path="a.txt">
<line nb="36" found="true"/>
</file>
</analysis>
Спасибо большое за помощь!
Вы прочитали статью: http://www.jenitennison.com/xslt/grouping/muenchian.html Если да, то где именно ваши трудности? –
Спасибо за ссылку. Я не знал об этом. Я прочитаю его внимательно. – Kraal