Is it possible to use XSLT to display a nested web.sitemap into a single non-nested table?
Looking around on the web, I found some XSLT code that transforms a web.sitemap file into a nested set of unordered lists (UL). Converting that into table markup, what I get is a set of nested tables.
I know I'm "doing it wrong." Does someone know how to present this as a single table -- not nested?
For those who want to know why I am asking this and what I'm trying to do, I'm trying to fill a client request to read the sitemap but present it as a table rather than as an asp.navigation control (which is my default action). If there is a better way to do this, I'm open to ideas. This was my best theory based on what I have been able to find by web search.
Thank you for any ideas.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:map="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" exclude-result
prefixes="map">
<xsl:output method="xml" encoding="utf-8" indent="yes"/>
<xsl:template name="mapNode" match="map:siteMap">
<table>
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="map:siteMapNode">
<tr>
<td style="border:thin solid red;">
<a>
<xsl:attribute name="href">
<xsl:value-of select="@url"/>
</xsl:attribute>
<xsl:value-of select="@title"/>
</a>
<xsl:if test="map:siteMapNode">
<xsl:call-template name="mapNode"/>
</xsl:if>
</td>
<td style="border:thin solid red;">
<xsl:value-of select="@description"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>