Hallo nralt,
Kennt jemand einen einfacheren Weg, um nur "pos" zu ändern
Identitäts-Template mit Spezialbehandlung der pos*-Elemente:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[starts-with(local-name(),'pos')]">
<xsl:element name="c{substring-after(local-name(),'pos')}">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Ergebnis:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<page1>
<c1>text</c1>
<c2>text</c2>
<c3>text</c3>
<c4>text</c4>
</page1>
</root>
Grüße,
Thomas