[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] XSLT Question
Subject: RE: [xsl] XSLT Question From: "Michael Kay" <mhk@xxxxxxxxx> Date: Wed, 20 Aug 2003 22:02:50 +0100 |
A straightforward grouping problem, see http://www.jenitennison.com/xslt/grouping. Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of Lee, Insoo > Sent: 20 August 2003 16:45 > To: 'xsl-list@xxxxxxxxxxxxxxxxxxxxxx' > Cc: Penn, Alden > Subject: [xsl] XSLT Question > > > > > I am currently using an XSLT stylesheet to transform one type > of XML into another. The first type looks like this: > > <FruitList> > <Fruit ID="5" KEY="apple" VALUE="true"> > <Fruit ID="5" KEY="orange" VALUE="false"> > <Fruit ID="4" KEY="orange" VALUE="false"> > <Fruit ID="5" KEY="banana" VALUE="false"> > <Fruit ID="4" KEY="pineapple" VALUE="false"> > <Fruit ID="13" KEY="orange" VALUE="false"> > <Fruit ID="13" KEY="watermelon" VALUE="true"> > <Fruit ID="4" KEY="kiwi" VALUE="false"> > <Fruit ID="4" KEY="grapefruit" VALUE="true"> > <Fruit ID="13" KEY="papaya" VALUE="false"> > <Fruit ID="13" KEY="honeydew" VALUE="true"> > </FruitList> > > I'd like to write a stylesheet to transform it as follows: > > <FruitList> > <Fruit ID="5"> > <Property KEY="apple" VALUE="true"> > <Property KEY="orange" VALUE="false"> > <Property KEY="banana" VALUE="false"> > </Fruit> > <Fruit ID="4"> > <Property KEY="orange" VALUE="false"> > <Property KEY="pineapple" VALUE="false"> > <Property KEY="kiwi" VALUE="false"> > <Property KEY="grapefruit" VALUE="true"> > </Fruit> > <Fruit ID="13"> > <Property KEY="orange" VALUE="false"> > <Property KEY="watermelon" VALUE="true"> > <Property KEY="papaya" VALUE="false"> > <Property KEY="honeydew" VALUE="true"> > </Fruit> > </FruitList> > > > So far, using a <xsl:for-each select="//Fruit"> with a > nested <xsl:for-each select="//Fruit[@ID=$a]"> where $a = the > current ID, I've been able to get the XML to look like the following: > > <FruitList> > <Fruit ID="5"> > <Property KEY="apple" VALUE="true"> > <Property KEY="orange" VALUE="false"> > <Property KEY="banana" VALUE="false"> > </Fruit> > <Fruit ID="5"> > <Property KEY="apple" VALUE="true"> > <Property KEY="orange" VALUE="false"> > <Property KEY="banana" VALUE="false"> > </Fruit> > <Fruit ID="5"> > <Property KEY="apple" VALUE="true"> > <Property KEY="orange" VALUE="false"> > <Property KEY="banana" VALUE="false"> > </Fruit> > <Fruit ID="4"> > <Property KEY="orange" VALUE="false"> > <Property KEY="pineapple" VALUE="false"> > <Property KEY="kiwi" VALUE="false"> > <Property KEY="grapefruit" VALUE="true"> > </Fruit> > <Fruit ID="4"> > <Property KEY="orange" VALUE="false"> > <Property KEY="pineapple" VALUE="false"> > <Property KEY="kiwi" VALUE="false"> > <Property KEY="grapefruit" VALUE="true"> > </Fruit> > <Fruit ID="4"> > <Property KEY="orange" VALUE="false"> > <Property KEY="pineapple" VALUE="false"> > <Property KEY="kiwi" VALUE="false"> > <Property KEY="grapefruit" VALUE="true"> > </Fruit> > <Fruit ID="4"> > <Property KEY="orange" VALUE="false"> > <Property KEY="pineapple" VALUE="false"> > <Property KEY="kiwi" VALUE="false"> > <Property KEY="grapefruit" VALUE="true"> > </Fruit> > > ... > > </FruitList> > > In other words, it prints out a seperate Fruit tag in the > transformed XML for each of the Fruit tags in the original > when I want it to only print out one fruit tag for each ID. > How do I get the XSLT to "skip" rows I've already processed? > I tried saving the processed ID in a variable and testing to > see if the new ID is equal to the old ID, but because of > scoping issues it won't work. Any ideas? > > > Thanks, > > Alden > > > 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] XSLT Question, Lee, Insoo | Thread | Re: [xsl] XSLT Question, Mukul Gandhi |
RE: [xsl] Problem with comparison, Michael Kay | Date | RE: [xsl] newbie question about str, Michael Kay |
Month |