XSL stylesheet 4<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> |
<xsl:template match="/"> |
<TABLE border='1' width="90%"> |
<xsl:apply-templates select="//*"/> |
</TABLE> |
</xsl:template> |
<xsl:template match="*"> |
<xsl:if test="not(descendant::*[name()=name(current())] | following::*[name()=name(current())])"> |
<TR><TD><xsl:value-of select="name()"/></TD> |
<TD><xsl:apply-templates select="." mode='list'/></TD> |
</TR> |
</xsl:if> |
</xsl:template> |
<xsl:template match="*" mode='list'> |
<xsl:for-each select="//*[name()=name(current())]/*"> |
<xsl:value-of select="name()"/> |
</xsl:for-each> |
</xsl:template> |
</xsl:stylesheet> |