Subject: Re: [xsl] ?group? but keep order of elements From: Bryan Schnabel <bryan.schnabel@xxxxxxxxxxxxx> Date: Tue, 22 Oct 2002 13:20:44 -0700 (PDT) |
Elke, It turns out I had a chuckle about the "dawson" reference, and sent the cryptic reply, but forgot to include my silly punch-line (probably all the better). As for your question, I assume you discovered, and then decided against the Meunchian solution. An alternative, then would be some recursive approach, along the lines of: <xsl:template match="total"> <totlal> <xsl:apply-templates /> </totlal> </xsl:template> <xsl:template match="entry[MAT/Fundstelle/UbNummer]"> <xsl:if test="not(preceding-sibling::*[1][MAT/Fundstelle/UbNummer])"> <uebung> <xsl:copy-of select="." /> <xsl:for-each select="following-sibling::*[1][MAT/Fundstelle/UbNummer]"> <xsl:call-template name="exercise-checker" /> </xsl:for-each> </uebung> </xsl:if> </xsl:template> <xsl:template match="entry[not(MAT/Fundstelle/UbNummer)]"> <texteintrag> <xsl:copy-of select="." /> </texteintrag> </xsl:template> <xsl:template name="exercise-checker"> <xsl:copy-of select="." /> <xsl:for-each select="following-sibling::*[1][MAT/Fundstelle/UbNummer]"> <xsl:call-template name="exercise-checker" /> </xsl:for-each> </xsl:template> Which transforms this: <total> <entry> <MAT> <Fundstelle> <TitelNr></TitelNr> <UbNummer>0</UbNummer> </Fundstelle> </MAT> <LO > <Text></Text> </LO> </entry> <entry> <MAT> <Fundstelle> <TitelNr></TitelNr> </Fundstelle> </MAT> <LO> <TitelEins></TitelEins> </LO> </entry> <entry> <MAT> <Fundstelle> <TitelNr></TitelNr> <UbNummer>1</UbNummer> </Fundstelle> </MAT> <LO > <Text></Text> </LO> </entry> <entry> <MAT> <Fundstelle> <TitelNr></TitelNr> <UbNummer>2</UbNummer> </Fundstelle> </MAT> <LO > <Text></Text> </LO> </entry> <entry> <MAT> <Fundstelle> <TitelNr></TitelNr> <UbNummer>3</UbNummer> </Fundstelle> </MAT> <LO > <Text></Text> </LO> </entry> </total> into this: <totlal> <uebung> <entry> <MAT> <Fundstelle> <TitelNr/> <UbNummer>0</UbNummer> </Fundstelle> </MAT> <LO> <Text/> </LO> </entry> </uebung> <texteintrag> <entry> <MAT> <Fundstelle> <TitelNr/> </Fundstelle> </MAT> <LO> <TitelEins/> </LO> </entry> </texteintrag> <uebung> <entry> <MAT> <Fundstelle> <TitelNr/> <UbNummer>1</UbNummer> </Fundstelle> </MAT> <LO> <Text/> </LO> </entry> <entry> <MAT> <Fundstelle> <TitelNr/> <UbNummer>2</UbNummer> </Fundstelle> </MAT> <LO> <Text/> </LO> </entry> <entry> <MAT> <Fundstelle> <TitelNr/> <UbNummer>3</UbNummer> </Fundstelle> </MAT> <LO> <Text/> </LO> </entry> </uebung> </totlal> (some fine-tuning would still help) Bryan --- "Naraschewski, E." <e.naraschewski@xxxxxxxxxxxxx> wrote: > Hallo again, > (my first mail today somehow did not get through to > the list) > again I read through the faqs (to Bryan S. Schnabel: > the list with the p in it) and without any result. > There are partly answers but not the answer I am > looking for. I am not sure whether grouping is the > right direction. > I can not really fix a position. I can only say: Use > the node <texteintrag> for all entries up to the > next <uebung>, than take the node <uebung> up to the > point where <texteintrag> starts again. Actually I > would think of xsl:if or xsl:when, but if I choose > these how can I keep the strucure? I simply need an > xslt that transforms my xml, adds new elements and > comprises the child elements and following siblings. > Do I need something completely different to my > stylesheet or is there a way to continue? . . . > Thanks in advance > Elke > ******************************************************* > Elke Naraschewski - Ernst Klett Verlag GmbH - > Leistungscenter Mediengestaltung > > Rotebühlstr. 77 - 70178 Stuttgart > Tel.: 0711/6672-1116 - Fax: 0711/6672-2023 - E-mail: > e.naraschewski@xxxxxxxxxxxxx > > Stuttgart HRB 10746 - Verleger: Dr.h.c. Michael > Klett > Geschäftsführer: Johannes Leßmann - Harald Melcher - > Dr. Tilmann Michaletz - Dr. Wolf Unkelbach (Vorsitz) > > > 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] ?group? but keep order of ele, Naraschewski, E. | Thread | [xsl] ?group? but keep order of ele, Naraschewski, E. |
RE: [xsl] Removing duplicates, Clay Leeds | Date | RE: [xsl] XML in IE6, Mike Ferrando |
Month |