| 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 |