|  | <?xml version="1.0"?> | 
|  | <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | 
|  | <xsl:output method="html"/> | 
|  | <xsl:template match="/"> | 
|  | <html> | 
|  | <body> | 
|  | <ul> | 
|  | <xsl:apply-templates select="topic"> | 
|  | <xsl:sort select="order" data-type="number" order="descending"/> | 
|  | </xsl:apply-templates> | 
|  | </ul> | 
|  | </body> | 
|  | </html> | 
|  | </xsl:template> | 
|  |  | 
|  | <xsl:template match="topic"> | 
|  | <li> | 
|  | <object type="text/sitemap"> | 
|  | <xsl:element name="param"> | 
|  | <xsl:attribute name="name">Name</xsl:attribute> | 
|  | <xsl:attribute name="value"><xsl:value-of select="title" /></xsl:attribute> | 
|  | </xsl:element> | 
|  | <xsl:element name="param"> | 
|  | <xsl:attribute name="name">Local</xsl:attribute> | 
|  | <xsl:attribute name="value"><xsl:value-of select="id" />.html</xsl:attribute> | 
|  | </xsl:element> | 
|  | </object> | 
|  | </li> | 
|  | <xsl:if test="topic"> | 
|  | <ul> | 
|  | <xsl:apply-templates select="topic" /> | 
|  | </ul> | 
|  | </xsl:if> | 
|  | </xsl:template> | 
|  |  | 
|  | <!-- If a topic doesn't have a title, we pretend it isn't there and hoist its children up in its place --> | 
|  | <xsl:template match="topic[not(title)]"> | 
|  | <xsl:apply-templates select="topic"> | 
|  | <xsl:sort select="order" data-type="number" order="descending"/> | 
|  | </xsl:apply-templates> | 
|  | </xsl:template> | 
|  | </xsl:stylesheet> |