Subject: RE: [xsl] How to form correct structure From: "Chris Bayes" <chris@xxxxxxxxxxx> Date: Tue, 11 Sep 2001 07:25:29 +0100 |
David, Have a look ar the dirtoxml stylesheet in the utilities section of my site or the how to do this in the tutorial section. Ciao Chris XML/XSL Portal http://www.bayes.co.uk/xml > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > David O Baldwin > Sent: 10 September 2001 16:36 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] How to form correct structure > > > I have a question about how to form the correct structure of > nodes in my result set. > > I have an xml file which represents a set of Menu items. > I am attempting to transform each Menu node into an HTML DIV. > > My problem is that for each branch of the menu I need to > contain the rest of the entire menu in a further DIV. > > A simplified version of the XML is as follows: > (The Description of each Menu reflects its level in the node set) > > <?xml version="1.0"?> > <Menu> > <Menu Description="menuOne"> > <Menu Description="menuOneOne"> > </Menu> > <Menu Description="menuOneTwo"> > <Menu Description="menuOneTwoOne"> > </Menu> > </Menu> > <Menu Description="menuOneThree"> > </Menu> > </Menu> > <Menu Description="menuTwo"> > <Menu Description="menuTwoOne"> > </Menu> > </Menu> > </Menu> > > > > A simplified version of the XSL is as follows: > > <xsl:template match="/"> > <xsl:apply-templates select="Menu"/> > </xsl:template> > > <xsl:template match="Menu"> > <xsl:variable name="MenuID">menu<xsl:number > level="multiple" count="Menu" format="1_1"/></xsl:variable> > <DIV> > <xsl:attribute name="ID"> > <xsl:value-of select="$MenuID"/> > </xsl:attribute> > <xsl:value-of select="@Description"/> > </DIV> > <xsl:if test="Menu"> > <xsl:apply-templates select="Menu"/> > <DIV> > <xsl:attribute > name="ID">Block_<xsl:value-of select="$MenuID"/></xsl:attribute> > </DIV> > </xsl:if> > </xsl:template> > > The resulting output is as follows > > <DIV ID="menu"></DIV> > <DIV ID="menu_1">menuOne</DIV> > <DIV ID="menu_1_1">menuOneOne</DIV> > <DIV ID="menu_1_2">menuOneTwo</DIV> > <DIV ID="menu_1_2_1">menuOneTwoOne</DIV> > <DIV ID="Block_menu_1_2"> > </DIV> > <DIV ID="menu_1_3">menuOneThree</DIV> > <DIV ID="Block_menu_1"> > </DIV> > <DIV ID="menu_2">menuTwo</DIV> > <DIV ID="menu_2_1">menuTwoOne</DIV> > <DIV ID="Block_menu_2"> > </DIV> > <DIV ID="Block_menu"> > </DIV> > > However, the desired output is to have the 'Block' DIVs > surrounding the rest of the menu as follows, with the order > of the menu DIVs remaining the same: > > <DIV ID="menu"></DIV> > <DIV ID="menu_1">menuOne</DIV> > <DIV ID="menu_1_1">menuOneOne</DIV> > <DIV ID="menu_1_2">menuOneTwo</DIV> > <DIV ID="menu_1_2_1">menuOneTwoOne</DIV> > <DIV ID="Block_menu_1_2"> > <DIV ID="menu_1_3">menuOneThree</DIV> > <DIV ID="Block_menu_1"> > <DIV ID="menu_2">menuTwo</DIV> > <DIV ID="menu_2_1">menuTwoOne</DIV> > <DIV ID="Block_menu_2"> > <DIV ID="Block_menu"> > </DIV> > </DIV> > </DIV> > </DIV> > > I think that what I need to do is to change the XSL to be > something like > > <xsl:if test="Menu"> > <xsl:apply-templates select={expression to > select only direct descendents of current node} /> > <DIV> > <xsl:attribute > name="ID">Block_<xsl:value-of select="$MenuID"/></xsl:attribute> > <xsl:apply-templates select={expression > to select only following siblings of current node} /> > </DIV> > </xsl:if> > > > but I have not managed to get anywhere near what I am after, > so maybe I am barking up the wrong tree. It seems as though > what I am trying to do is create a nested structure based on > the structure of the original XML, but using different nodes. > > Does anyone have any ideas as to how to approach this problem? > > I can probably write something in ASP to convert the XML for > me, but I would rather find out how it could be done in XSL. > > Thanks for any pointers/ideas. > > David Baldwin > > > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] How to form correct structure, David O Baldwin | Thread | [xsl] I don't unterstand!, Auguste Oumar |
[xsl] XML and XSL syntax coloring f, Alexander Gutman | Date | RE: [xsl] Column Ordering Design Qu, Chris Bayes |
Month |