ThomasM: XHTML-Dokument mittels XSLT "erweitern:

Beitrag lesen

Hallo Chris,

ich versuche ein XHTML-Dokument mittels XSLT zu "erweitern" - sprich, beim Auftauchen eines bestimmten Elements möchte ich dieses mit einem Container-Element einfassen.

Probiere es so:

<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
  xmlns:html="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml"  
  exclude-result-prefixes="html">  
  
  <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="html:p">  
    <div class="paragraph">  
      <xsl:copy-of select="."/>  
    </div>  
  </xsl:template>  
  
</xsl:stylesheet>

Einerseits kommt das Identity-Template zum Einsatz, welches alle Inhalte 1:1 in die Ausgabe übernimmt und anderseits sollen p-Elemente gesondert behandelt werden, welche wiederum im Default-XML-Namespace liegen. Der Zugriff darauf erfolgt hier mittels html:p (Prefix beliebig wählbar). Die nochmalige Verwendung von xmlns="http://www.w3.org/1999/xhtml" als Default-Namensraum im Stylesheet vermeidet die Ausgabe von xmlns="" bei den neu erzeugten div-Elementen.

Grüße,
Thomas