Subject: [xsl] [SOLVED] RE: [xsl] grouping - XSLT 1.0 From: "Lopez, William" <william.lopez@xxxxxxx> Date: Thu, 14 Apr 2005 00:05:05 -0500 |
I got it to work but it's still ugly. I'm still interested in doing it correctly (or a more eloquent solution :-). Thanks -----Original Message----- From: Lopez, William Sent: Wednesday, April 13, 2005 11:45 PM To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Subject: [xsl] grouping - XSLT 1.0 List: [Will] I've tried the Muenchian Method with no success (my lack of understanding). I have the following xml that will be transformed in an unordered list in html. Each category is processed differently - Cat 2 is what I'm trying to nail: <root> <Category ID="1" Name="Relate"> ... </Category> <Category ID="2" Name="Response"> <Question ID="34" Text="Customer Focus" > <Help ID="203" Category="Clerical:" Text="c1"/> <Help ID="204" Category="Clerical:" Text="c2"/> <Help ID="206" Category="Technical:" Text="t1"/> <Help ID="207" Category="Technical:" Text="t2"/> <Help ID="209" Category="Professional:" Text="p1"/> <Help ID="210" Category="Professional:" Text="p2"/> <Help ID="212" Category="Supervisor:" Text="s1"/> <Help ID="213" Category="Supervisor:" Text="s2"/> </Question> <Question ID="35" Text="Integrity and Trust""> <Help ID="203" Category="Clerical:" Text="c1"/> <Help ID="204" Category="Clerical:" Text="c2"/> <Help ID="206" Category="Technical:" Text="t1"/> <Help ID="207" Category="Technical:" Text="t2"/> <Help ID="209" Category="Professional:" Text="p1"/> <Help ID="210" Category="Professional:" Text="p2"/> <Help ID="212" Category="Supervisor:" Text="s1"/> <Help ID="213" Category="Supervisor:" Text="s2"/> </Question> </Category> </root> The output should be similar to this the '>>' represents an icon which toggles the help elements visibility (they're in a div): >>Customer Focus O Clerical [] c1 [] c2 0 Technical [] t1 [] t2 ... >> Integrity and Trust O Clerical [] c1 [] c2 0 Technical [] t1 [] t2 ... How do I get these grouped so that each div represents the appropriate question. Currently, my xslt does not - it uses the same <Question> id for all questions which means the div's ids are not unique. I could not get the Muenchian Method to work so I tried a 'simple' solution. The xsl: ... <xsl:template name="questionhelp"> <xsl:param name="title"/> <!-- Write the help image --> <input type='image' src='/PMP/common/images/ico_collapsed.gif' onclick='ShowHelpText({@ID},this);' width='16' height='16' border='2' /> <!-- Write the text --> <xsl:text> </xsl:text><xsl:value-of select="$title"/> <!-- **************************************************** --> <!-- I tried this but didn't yield the result I wanted <xsl:if test="./Help[@Category='Clerical:']"> <xsl:call-template name="clerical"/> </xsl:if> <xsl:if test="./Help[@Category='Technical:']"> <xsl:call-template name="technical"/> </xsl:if> <xsl:if test="./Help[@Category='Professional:']"> <xsl:call-template name="professional"/> </xsl:if> <xsl:if test="./Help[@Category='Supervisor:']"> <xsl:call-template name="supervisor"/> </xsl:if> <xsl:if test="./Help[@Category='Leader:']"> <xsl:call-template name="leader"/> </xsl:if> --> <!-- **************************************************** --> <!-- so I tried using this and *hoped* a match would do the trick, it did not --> <xsl:apply-templates /> </xsl:template> <xsl:template match="Help" name="clerical2"> <!-- Write the help --> <div class="helpText" id="helpText_{@ID}" name="helpText_{@ID}" style="display:none"> <li>Clerical:</li> <ul> <xsl:for-each select="./Help[@Category='Clerical:']"> <li> <xsl:value-of select="./@Text"/> </li> </xsl:for-each> </ul> </div> </xsl:template> This blows up. I can not figure out how to accomplish this without hard coding the category type. I would like to find a 'generic' way to handle it. Thanks, -Will
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] grouping - XSLT 1.0, Lopez, William | Thread | Re: [xsl] [SOLVED] RE: [xsl] groupi, David Carlisle |
[xsl] grouping - XSLT 1.0, Lopez, William | Date | [xsl] Comma-Separated List of Items, Marcos Hercules dos |
Month |