Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries >Thread Prev - Re: Grouping/Sorting Problem >Thread Next - Re: Grouping/Sorting Problem Re: Grouping/Sorting ProblemTo: NULL Date: 10/9/2006 6:49:00 PM Thank you, that gets me partially there but the way you suggest doesn't put the results in the 2 columns in order. Do you see how I could modify the following to get the data in two columns? <xsl:for-each select="/Products/Begin_Product/Selection"> <xsl:for-each select="Configuration_Data/Module"> <xsl:variable name="vpMod" select ="//Products/Begin_Product/Selection/Performance_Data/Perf_Data/Perf_Module[@nID = current()/@nID]"/> <br><b><xsl:value-of select="@name"/></b></br> <xsl:for-each select="msxsl:node-set(Category|$vpMod//Perf_Category)"> <xsl:sort select="@displayOrder" data-type="number"/> <br><xsl:value-of select="@name"/> - <xsl:value-of select="@displayOrder"/></br> </xsl:for-each> </xsl:for-each> </xsl:for-each> "Dimitre Novatchev" wrote: > The following transformation produces the desired result -- without any > intermediate RTFs and the need to convert them to regular trees: > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output omit-xml-declaration="yes" indent="yes"/> > <xsl:strip-space elements="*"/> > > <xsl:template match="/"> > <html> > <xsl:apply-templates/> > </html> > </xsl:template> > > <xsl:template match="Selection_Number"> > <table> > <tr><td>Selection <xsl:value-of select="."/></td></tr> > <xsl:for-each select="../Configuration_Data/Module"> > <xsl:sort select="@displayOrder" data-type="number"/> > <xsl:variable name="vpMod" select= > "../../Performance_Data/Perf_Data/Perf_Module > [@nID = current()/@nID] > "/> > <tr> > <td><xsl:value-of select="@name"/></td> > </tr> > <xsl:for-each select="Category"> > <xsl:sort select="@displayOrder" data-type="number"/> > <xsl:variable name="vPos" select="position()"/> > <tr> > <td> > <xsl:value-of select="@name"/> > </td> > <td> > <xsl:for-each select="$vpMod/Perf_Category"> > <xsl:sort select="@displayOrder" data-type="number"/> > <xsl:if test="position() = $vPos"> > <xsl:value-of select="@name"/> > </xsl:if> > </xsl:for-each> > </td> > </tr> > > </xsl:for-each> > </xsl:for-each> > </table> > </xsl:template> > </xsl:stylesheet> > > > > Cheers, > Dimitre Novatchev > > "Sarah_Lund" <SarahLund@d...> wrote in message > news:570EFAE9-042E-44D0-8C14-4E63A662D991@m...... > > First I need to create a table for each Selection > > Then within each table I need to group by each > > Configuration_Data/Module/@nID = > > Performance_Data/Perf_Data/Perf_Module/@nID > > Then for each Configuration_Data/Module/@nID = > > Performance_Data/Perf_Data/Perf_Module/@nID I need to display > > Category/@name > > and Perf_Category/@name but these must be sorted according to > > Category/@displayOrder and Perf_Module/Perf_Category/@displayOrder > > > > So for each Configuration_Data/Module/@nID = > > Performance_Data/Perf_Data/Perf_Module/@nID I need to dump all Category > > and > > all Perf_Module/Perf_Category into a set and then sort them all by their > > @displayOrder. > > > > And then display them left to right in two columns in the table. The > > results > > would like like the following: > > <table> > > <tr><td>Selection 1</td></tr> > > <tr><td>Base Unit Module</td></tr> > > <tr><td>Unit</td><td>Elevation</td></tr> > > <tr><td>Unit Roof</td><td>Unit Airflow</td></tr> > > <tr><td>Htg</td><td>Frame</td></tr> > > <tr><td>Fan Module</td></tr> > > ... > > </table> > > > > I had gotten help to get something like this working in the past but > > having > > trouble applying to this case. Any help is appreciated! > > An excerpt from the xml file is below: > > <Products> > > <Begin_Product nID="2002421"> > > <Selection> > > <Selection_Number>1</Selection_Number> > > <Configuration_Data> > > <Module displayOrder="10" nID="4656" name="Base Unit Module"> > > <Category displayOrder="10" nID="21" name="Unit"/> > > <Category displayOrder="50" nID="43" name="Frame"/> > > <Category displayOrder="20" nID="67" name="Unit Roof"/> > > </Module> > > <Module displayOrder="20" nID="4658" name="Fan Module"> > > <Category displayOrder="10" nID="96" name="Fan Module"/> > > <Category displayOrder="20" nID="63" name="Fan Size"/> > > </Module> > > </Configuration_Data> > > <Performance_Data> > > <Perf_Data> > > <Perf_Module nID="4656" name="Base Unit Module"> > > <Perf_Category displayOrder="30" nID="10" name="Unit Airflow"/> > > <Perf_Category displayOrder="10" nID="91" name="Elevation"/> > > <Perf_Category displayOrder="40" nID="13" name="Htg"/> > > </Perf_Module> > > <Perf_Module nID="4658" name="Fan Module"> > > <Perf_Category displayOrder="20" nID="23" name="Airflow"/> > > <Perf_Category displayOrder="90" nID="30" name="AbsPower"/> > > </Perf_Module> > > </Perf_Data> > > </Performance_Data> > > </Selection> > > </Begin_Product> > > </Products> > > > | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
