>> English << | Français | Deutsch | Magyar | 中文 | Polski | ZVON > Tutorials > XSLT Tutorial |
Intro / Search / ZVON |
>> Page 56 << | Prev | Next | Contents | Element Index |
XML Source
<!DOCTYPE source [ <!ELEMENT xslTutorial (doc,note*)> <!ELEMENT doc (#PCDATA|ref)*> <!ELEMENT ref EMPTY> <!ATTLIST ref id IDREF #REQUIRED> <!ELEMENT note (#PCDATA)> <!ATTLIST note id ID #REQUIRED> ]><source> <doc> This text <ref id="n3"/> demonstrates <ref id="n1"/> a possible usage of id function <ref id="n2"/>. </doc> <note id="n1">Note n1</note> <note id="n2">Note n2</note> <note id="n3">Note n3</note> </source> Output
This text <SUP>1</SUP> demonstrates <SUP>2</SUP> a possible usage of id function <SUP>3</SUP>. <HR> <DIV>1. Note n3</DIV> <DIV>2. Note n1</DIV> <DIV>3. Note n2</DIV> HTML view
This text
1
demonstrates 2
a possible usage
of id function 3.
1. Note n3
2. Note n1
3. Note n2 |
XSLT stylesheet
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> <xsl:output method="html"/> <xsl:template match="/"> <xsl:apply-templates select="//doc"/> <HR/> <xsl:for-each select="//ref"> <xsl:apply-templates select="id(@id)"> <xsl:with-param name="nmbr"> <xsl:value-of select="position()"/> </xsl:with-param> </xsl:apply-templates> </xsl:for-each> </xsl:template> <xsl:template match="ref"> <SUP> <xsl:value-of select="count(//doc/*) - count(following::ref)"/> </SUP> </xsl:template> <xsl:template match="note"> <xsl:param name="nmbr">1</xsl:param> <DIV> <xsl:number value="$nmbr" format="1. "/> <xsl:value-of select="."/> </DIV> </xsl:template> </xsl:stylesheet> |