Вы можете использовать шаблон, чтобы соответствовать тексту в исключить шаблон
<xsl:template match="exclude/text()">
<restriction><xsl:value-of select="." /></restriction>
</xsl:template>
Таким образом, любые другие дочерние элементы будут сохранены в исключить , если они будуттребуется.
Итак, с учетом следующего XSLT
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="exclude/text()">
<restriction><xsl:value-of select="." /></restriction>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Применительно к следующему XML
<exclude ex="1"> MyRestriction <test>Hello</test> </exclude>
Ниже выводится
<exclude ex="1">
<restriction> MyRestriction </restriction>
<test>Hello</test>
</exclude>