Это также проблема с другими анализаторами (MSXML, .NET System.XML).
Попробуйте перестроить заказ в XSL. Вы должны четко указать, где вы хотите, чтобы ваш элемент.
Вот пример XML / XSL
<xml>
<e>One</e>
<e>Two</e>
<e>Three</e>
</xml>
Вы можете добавить как элементы, так и атрибуты с помощью следующего XSL
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xml>
<xsl:for-each select='/xml/e'>
<xsl:element name='e'>
<xsl:attribute name='newatt'>New attribute</xsl:attribute>
<xsl:value-of select='.'/>
</xsl:element>
<xsl:element name='newlement'>
<xsl:attribute name='newatt'>New attribute in new element</xsl:attribute>
new element value
</xsl:element>
</xsl:for-each>
</xml>
</xsl:template>
</xsl:stylesheet>
Создает это
<?xml version="1.0"?>
<xml>
<e newatt="New attribute">One</e>
<newlement newatt="New attribute in new element">
new element value
</newlement>
<e newatt="New attribute">Two</e>
<newlement newatt="New attribute in new element">
new element value
</newlement>
<e newatt="New attribute">Three</e>
<newlement newatt="New attribute in new element">
new element value
</newlement>
</xml>