Xslt xpath xhtml
Zur Navigation springen
Zur Suche springen
Problem: xhtml parsen und teile wieder als xhtml bereitstellen, das ganze über xslt-Transformation. In diesem Fall soll der Inhalt eines Div (id=content-top) ausgeschnitten werden.
xsl:
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
xmlns:xdt="http://www.w3.org/2005/02/xpath-datatypes" >
<xsl:output method="html"/>
<xsl:template match="//*[local-name()='div'][@id='content-top']">
<xsl:copy-of select="."/>
</xsl:template>
<xsl:template match="@*|text()">
</xsl:template>
<xsl:template match="*|@*">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
Default-Templates
Wird für ein Element keine passende Regel gefunden, so treten im Prozessor eingebaute "Default-Templates" in Kraft:
<xsl:template match="*|/">
<xsl:apply-templates>
</xsl:template>
<xsl:template match="@*|text()">
<xsl:value-of select=".">
</xsl:template>
<xsl:template match="comment()|processing-instruction()"/>
Bei Elementknoten ohne passende Regel werden also mit deren Kindknoten fortgefahren; Texte und Attribute werden mittels value-of (wird später erklärt) durch ihren Wert ersetzt; Kommentare und PIs werden ignoriert.
Danke an Thomas für die Unterstützung.