ThomasM: Tag-Name ändern

Beitrag lesen

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