[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] very Simple nested for each loops...
Subject: RE: [xsl] very Simple nested for each loops... From: Américo Albuquerque <melinor@xxxxxxx> Date: Thu, 7 Aug 2003 00:43:39 +0100 |
Hi. > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Andy.Benson@xxxxxxx > Sent: Wednesday, August 06, 2003 4:52 PM > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] very Simple nested for each loops... > > > Hi I have some simple perl code that I want to convert into a > XSL stylesheet. The variables $set1 and $set2 would be > configured in XML. Any simple suggestions are very welcome. > > best regards > > Andy > > > This can be done using a config file where you can set the rules to work. Main xml file: <mux> <set1>1</set1> <set2>0</set2> </mux> XML config file: <config> <set name="set1" on="1"> <letters> <letter value="a"/> <letter value="b"/> </letters> <numbers> <number value="0"/> <number value="1"/> <number value="2"/> <number value="3"/> </numbers> </set> <set name="set2"> <letters> <letter value="x"/> <letter value="y"/> <letter value="z"/> </letters> <numbers> <number value="0"/> <number value="1"/> <number value="2"/> <number value="3"/> <number value="4"/> <number value="5"/> </numbers> </set> </config> Stylesheet: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="mux"> <xsl:variable name="cnfg" select="document('config.xml')/config"/> <xsl:apply-templates select="document('config.xml')/config/*"> <xsl:with-param name="sets" select="current()/*"/> </xsl:apply-templates> </xsl:template> <xsl:template match="set"> <xsl:param name="sets" select="/.."/> <xsl:apply-templates mode="mux" select="$sets[name()=current()/@name and normalize-space()=current()/@on]"> <xsl:with-param name="letters" select="current()/letters"/> <xsl:with-param name="numbers" select="current()/numbers"/> </xsl:apply-templates> </xsl:template> <xsl:template match="*" mode="mux"> <xsl:param name="letters" select="/.."/> <xsl:param name="numbers" select="/.."/> <xsl:for-each select="$letters/letter"> <xsl:variable name="letter" select="@value"/> <xsl:for-each select="$numbers/number"> <xsl:value-of select="$letter"/> <xsl:value-of select="@value"/> <xsl:text> </xsl:text> </xsl:for-each> <xsl:text> </xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet> Hope this helps you. Regards, Americo Albuquerque (...) XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] very Simple nested for each l, Andy . Benson | Thread | RE: [xsl] very Simple nested for ea, cknell |
[xsl] Need Help with XSL loop break, Sonu | Date | RE: [xsl] SQL SELECT statement in X, Américo Albuquerque |
Month |