Xslt xpath xhtml: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: t) |
(new) |
||
Zeile 1: | Zeile 1: | ||
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: | |||
<source lang=xml> | |||
<?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> | |||
</source> | |||
=Default-Templates= | |||
Wird für ein Element keine passende Regel gefunden, so treten im Prozessor eingebaute "Default-Templates" in Kraft: | |||
<source lang=xml> | |||
<xsl:template match="*|/"> | |||
<xsl:apply-templates> | |||
</xsl:template> | |||
<xsl:template match="@*|text()"> | |||
<xsl:value-of select="."> | |||
</xsl:template> | |||
<xsl:template match="comment()|processing-instruction()"/> | |||
</source> | |||
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. | |||
[[Kategorie:Tips_und_Tricks]] | |||
[[Kategorie:HTML]] |
Aktuelle Version vom 3. August 2007, 20:30 Uhr
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.