Subject: Re: [xsl] Display more than one table in generic xslt - reg From: Martin Honnen <Martin.Honnen@xxxxxx> Date: Fri, 26 Mar 2010 16:38:43 +0100 |
Is this technique called as Muenchian Grouping technique ?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes"/> <xsl:strip-space elements="*"/>
<xsl:key name="by-name" match="/*/*" use="concat('{', namespace-uri(), '}', local-name())"/>
<xsl:template match="/"> <html> <body> <table> <tbody> <xsl:apply-templates select="*/*[generate-id() = generate-id(key('by-name', concat('{', namespace-uri(), '}', local-name()))[1])]" mode="table"/> </tbody> </table> </body> </html> </xsl:template>
<xsl:template match="/*/*" mode="table"> <tr> <td> <table border="1"> <thead> <tr> <xsl:apply-templates mode="th"/> </tr> </thead> <tbody> <xsl:apply-templates select="key('by-name', concat('{', namespace-uri(), '}', local-name()))"/> </tbody> </table> </td> </tr> <xsl:if test="position() != last()"> <tr> <td> </td> </tr> </xsl:if> </xsl:template>
<xsl:template match="/*/*/*" mode="th"> <th> <xsl:value-of select="local-name()"/> </th> </xsl:template>
<xsl:template match="/*/*"> <tr> <xsl:apply-templates/> </tr> </xsl:template>
<xsl:template match="/*/*/*"> <td> <xsl:value-of select="."/> </td> </xsl:template>
</xsl:stylesheet>
Martin Honnen http://msmvps.com/blogs/martin_honnen/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Display more than one tab, Ramesh Kumar | Thread | [xsl] Merging structure and content, Jacobus Reyneke |
Re: [xsl] Display more than one tab, Ramesh Kumar | Date | [xsl] error when trying to run styl, Lynn Murdock |
Month |