Xslt xpath xhtml: Unterschied zwischen den Versionen

Aus crazylinux.de
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: t)
 
(new)
 
Zeile 1: Zeile 1:
t
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.