Начните с шаблона идентификатора
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
Затем укажите шаблон для узла ex:Record/ex:Item
.Применение только целевых узлов.
<xsl:template match="ex:Record/ex:Item">
<xsl:apply-templates select="ex:Document_to_be_Requested/*"/>
</xsl:template>
Затем шаблон для целевого узла
<xsl:template match="ex:Document_to_be_Requested/ex:Item">
<ex:Item>
<!-- copies the preceding siblings of parent node -->
<xsl:copy-of select="../preceding-sibling::*"/>
<ex:Document_to_be_Requested>
<!-- copies the current node -->
<xsl:copy-of select="."/>
</ex:Document_to_be_Requested>
</ex:Item>
</xsl:template>
Вся таблица стилей выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ex="http://archertech.com/Print/Export"
version="2.0">
<xsl:strip-space elements="*"/>
<xsl:output indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ex:Record/ex:Item">
<xsl:apply-templates select="ex:Document_to_be_Requested/*"/>
</xsl:template>
<xsl:template match="ex:Document_to_be_Requested/ex:Item">
<ex:Item>
<xsl:copy-of select="../preceding-sibling::*"/>
<ex:Document_to_be_Requested>
<xsl:copy-of select="."/>
</ex:Document_to_be_Requested>
</ex:Item>
</xsl:template>
</xsl:stylesheet>
Смотрите его в действии здесь .