Nic Miloslav     Example 68    KEYWORDS      EXAMPLES      AUTHORS     

An example of id function usage.


     XML     HOME     XSL 1      
<!DOCTYPE xslTutorial  [
<!ELEMENT xslTutorial ANY>
<!ELEMENT xslTutorial (doc,note*)>
<!ELEMENT doc (#PCDATA|ref)*>
<!ELEMENT  ref EMPTY>
<!ATTLIST ref id IDREF #REQUIRED>
<!ELEMENT note (#PCDATA)>
<!ATTLIST note id ID #REQUIRED>]>
<xslTutorial >
<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>
</xslTutorial>

     XSL 1     HOME     XML     HTML 1     OUTPUT 1     
<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>

     HTML 1     HOME     XML     XSL 1     OUTPUT 1     
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 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>

     OUTPUT 1     HOME     XML     XSL 1     HTML 1     
This text 1 demonstrates 2 a possible usage of id function 3.
1. Note n3
2. Note n1
3. Note n2