Nic Miloslav     Example 29    KEYWORDS      EXAMPLES      AUTHORS     

You can get the name of currently selected element with name function. Stylesheet 1 prints names of all elements used in the document. Stylesheet 2 selects only elements which occurs first in each level.


     XML     HOME     XSL 1     XSL 2      
<xslTutorial >
<contact>
<name>John Smith</name>
<street>Long street </street>
<number>7</number>
<tel>
<home>25252511</home>
<work>14598752</work>
</tel>
</contact>
<contact>
<name>Joe Rye</name>
<street>Short avenue </street>
<number>75</number>
<tel>
<home>21111111</home>
<work>258987412</work>
</tel>
</contact> 
</xslTutorial>

     XSL 1     HOME     XML     HTML 1     OUTPUT 1     
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//*">
<xsl:call-template name="generalTemplate"/>
</xsl:for-each>
</TABLE>
</xsl:template>
<xsl:template name="generalTemplate">
<TR><TD><xsl:value-of select="name(.)"/></TD></TR>
</xsl:template>
</xsl:stylesheet>

     HTML 1     HOME     XML     XSL 1     OUTPUT 1     
<HTML>
<HEAD> </HEAD>
<BODY>
<TABLE>
<TR>
<TD>xslTutorial</TD></TR>
<TR>
<TD>contact</TD></TR>
<TR>
<TD>name</TD></TR>
<TR>
<TD>street</TD></TR>
<TR>
<TD>number</TD></TR>
<TR>
<TD>tel</TD></TR>
<TR>
<TD>home</TD></TR>
<TR>
<TD>work</TD></TR>
<TR>
<TD>contact</TD></TR>
<TR>
<TD>name</TD></TR>
<TR>
<TD>street</TD></TR>
<TR>
<TD>number</TD></TR>
<TR>
<TD>tel</TD></TR>
<TR>
<TD>home</TD></TR>
<TR>
<TD>work</TD></TR></TABLE> </BODY> </HTML>

     OUTPUT 1     HOME     XML     XSL 1     HTML 1     
xslTutorial
contact
name
street
number
tel
home
work
contact
name
street
number
tel
home
work

     XSL 2     HOME     XML     HTML 2     OUTPUT 2     
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//*[1]">
<xsl:call-template name="generalTemplate"/>
</xsl:for-each>
</TABLE>
</xsl:template>
<xsl:template name="generalTemplate">
<TR><TD><xsl:value-of select="name(.)"/></TD></TR>
</xsl:template>
</xsl:stylesheet>

     HTML 2     HOME     XML     XSL 2     OUTPUT 2     
<HTML>
<HEAD> </HEAD>
<BODY>
<TABLE>
<TR>
<TD>xslTutorial</TD></TR>
<TR>
<TD>contact</TD></TR>
<TR>
<TD>name</TD></TR>
<TR>
<TD>home</TD></TR>
<TR>
<TD>name</TD></TR>
<TR>
<TD>home</TD></TR></TABLE> </BODY> </HTML>

     OUTPUT 2     HOME     XML     XSL 2     HTML 2     
xslTutorial
contact
name
home
name
home