|
Subject: [xsl] XSL resources - Flat to hierarchy - Common ancestors From: "Ben Simkins" <bsimkins@xxxxxxxxxx> Date: Mon, 26 Jul 2004 16:55:38 +0200 |
Three questions in one mail:
1. Does anyone know of a public 'knowledgebase' type site where there
are lots of examples of solutions to different problems, classified in a
way which avoids spending hours trawling through threads?
2. Transforming 'flat' structures to hierarchies:
I've adapted a stylesheet found in this list, for creating the hierarchy
of this:
<Menus>
<Menu MenuId="58" MenuName="LeftMenu"/>
<Menu MenuId="1" MenuParentId="58" MenuName="Home"/>
<Menu MenuId="60" MenuParentId="1" MenuName="About us/>
...etc
</Menus>
The xsl looks like this:
<xsl:template match="/">
<xsl:apply-templates select="Menus"/>
</xsl:template>
<xsl:template match="Menus">
<xsl:copy>
<xsl:apply-templates select="Menu[not(@MenuParentId)]">
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="Menu">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="../Menu[@MenuParentId =
current()/@MenuId]"/>
</xsl:copy>
</xsl:template>
Question: is there any way of also adding the numbering (<xsl:number
level="multiple" format="1.1"/>) directly, or do I have to run the
output through a second stylesheet?
3. Given the hierarchical output from 2, I would like to extract all
nodes which are children of any of the ancestors of the node with a
given MenuId (including that node itself)
Expressed otherwise: the children, siblings, ancestors, uncles and
great-uncles, great-great-uncles (etc) of the given node.
Expressed otherwise: all Menus where MenuParentId IN (MenuIds of a given
node and all of its ancestors)
Many thanks for any answers received
Ben Simkins
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] DOCTYPE causes appearance, Paul DuBois | Thread | Re: [xsl] XSL resources - Flat to h, M. David Peterson |
| Re: [xsl] DOCTYPE causes appearance, Paul DuBois | Date | Re: [xsl] DOCTYPE causes appearance, Colin Paul Adams |
| Month |