Учитывая этот XML, мне нужно заполнить элементы «конец флага» правильным @associatedId, чтобы я мог воссоздать элементы из флагов, используя xsl: iterate. Я знаю, как создавать элементы, но не могу понять, как правильно заполнить @associatedId на конце каждого флага. (Это необходимо из-за того, что мы используем стороннее программное обеспечение. Мне всегда гарантируется равное количество начальных и конечных флагов и что правильное количество конечных флагов будет следовать за правильным количеством начальных флагов.)
<outer>
hello
<flag-start associatedId="test3"/>
<flag-start associatedId="test"/>
<span>wor<b>---</b>ld</span>
<flag-start associatedId="test4"/>
<flag-end/>
<flag-start associatedId="test2"/>
<flag-end/>
<flag-end/>
<flag-end/>
<flag-start associatedId="test5"/>
<flag-end/>
some more text
</outer>
Это желаемый вывод XML:
<outer>
hello
<flag-start associatedId="test3"/>
<flag-start associatedId="test"/>
<span>wor<b>---</b>ld</span>
<flag-start associatedId="test4"/>
<flag-end associatedId="test4"/>
<flag-start associatedId="test2"/>
<flag-end associatedId="test2"/>
<flag-end associatedId="test"/>
<flag-end associatedId="test3"/>
<flag-start associatedId="test5"/>
<flag-end associatedId="test5"/>
some more text
</outer>
xsl:iterate
это XSLT 3.0, поэтому, если мы можем использовать ее, уточните это. - person Martin Honnen   schedule 06.10.2016