Мне нужно переместить элементы <sectionid/>
и <sponsor/>
внутри соответствующих <amendment/>
.
Вот пример:
От:
<root>
<sectionid>A</sectionid>
<sponsor>john</sponsor>
<sponsor>paul</sponsor>
<amendment>
<id>1</id>
<text>some text</text>
</amendment>
<sectionid>B</sectionid>
<sponsor>peter</sponsor>
<amendment>
<id>5</id>
<text>some text</text>
</amendment>
<amendment>
<id>4</id>
<text>some text</text>
</amendment>
<sponsor>max</sponsor>
<amendment>
<id>6</id>
<text>some text</text>
</amendment>
<amendment>
<id>7</id>
<text>some text</text>
</amendment>
</root>
до:
<root>
<amendment>
<sectionid>A</sectionid>
<sponsor>john</sponsor>
<sponsor>paul</paul>
<id>1</id>
<text>some text</text>
</amendment>
<amendment>
<sectionid>B</sectionid>
<sponsor>peter</sponsor>
<id>5</id>
<text>some text</text>
</amendment>
<amendment>
<sectionid>B</sectionid>
<sponsor>peter</sponsor>
<id>4</id>
<text>some text</text>
</amendment>
<amendment>
<sectionid>B</sectionid>
<sponsor>max</sponsor>
<id>6</id>
<text>some text</text>
</amendment>
<amendment>
<sectionid>B</sectionid>
<sponsor>max</sponsor>
<id>7</id>
<text>some text</text>
</amendment>
</root>
Примечание 1: элемент <section/>
применяется ко всем <amendments/>
до следующего <sectionid/>
Примечание 2: элемент <sponsor/>
применяется ко всем <amendments/>
до следующего списка <sponsor/>
.
Примечание 3: значения //amendment/id
не являются последовательными.
Как это преобразование можно сделать с помощью XSLT 1.0.