Subject: Re: [xsl] Unique IDs? From: Sven Waibel <sven.waibel@xxxxxxxx> Date: Wed, 23 Mar 2005 11:32:12 +0100 |
Why the pc element? You have an unique ID by concat tc id and pc/status id tc1: status id = 1231 1232 1231 tc2: status id = 1245 1241 tc3: status id = 1251 So i should yield: tc1: 1231 1232 tc2: 1245 1241 tc3: 1251 ???? Sven Michael Kay wrote: > And my answer is unchanged. > > Michael Kay > http://www.saxonica.com/ > > >>-----Original Message----- >>From: Sven Waibel [mailto:sven.waibel@xxxxxxxx] >>Sent: 23 March 2005 10:22 >>To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >>Subject: Re: [xsl] Unique IDs? >> >>That's the correct xml: >> >><tc id="123"> >> <pc> >> <status id="1" name="Status 1"/> >> <status id="2" name="Status 2"/> >> <status id="1" name="Status 1"/> >> </pc> >></tc> >><tc id="124"> >> <pc> >> <status id="5" name="Status 5"/> >> <status id="1" name="Status 1"/> >> </pc> >></tc> >><tc id="125"> >> <pc> >> <status id="1" name="Status 1"/> >> </pc> >></tc> >> >>Michael Kay wrote: >> >> >>>Your stylesheet is giving you exactly what you asked for: >> >>it's outputting >> >>>the Status value only if it is the first one with that >> >>combination of id's. >> >>>To treat the contents of each <pc> as a separate group you >> >>will need to >> >>>factor the identity (generate-id()) of the pc element into >> >>the key value. >> >>>Michael Kay >>>http://www.saxonica.com/ >>> >>> >>> >>>>-----Original Message----- >>>>From: Sven Waibel [mailto:sven.waibel@xxxxxxxx] >>>>Sent: 23 March 2005 08:38 >>>>To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx >>>>Subject: [xsl] Unique IDs? >>>> >>>> >>>>Good morning! >>>> >>>>in my xsl: >>>> >>>><xsl:key name="ids" match="tc/pc/*[@id]" >>>>use="concat(../../@id,@id)" /> >>>> >>>><xsl:template match="pc"> >>>> <xsl:apply-templates select="*[@id and generate-id(.)= >>>>generate-id(key('ids', concat(../../@id,@id)))]" /> >>>></xsl:template> >>>> >>>><xsl:template match="tc/pc/*[@id]"> >>>> <fo:block><xsl:value-of select="@name" /></fo:block> >>>></xsl:template> >>>> >>>> >>>>my xml: >>>> >>>><tc id="123"> >>>> <pc> >>>> <status id="1" name="Status 1"/> >>>> <status id="2" name="Status 2"/> >>>> <status id="1" name="Status 1"/> >>>> </pc> >>>> <pc> >>>> <status id="5" name="Status 5"/> >>>> <status id="1" name="Status 1"/> >>>> </pc> >>>> <pc> >>>> <status id="1" name="Status 1"/> >>>> </pc> >>>></tc> >>>> >>>>The current output looks as followed: >>>> >>>>"pc1" Status 1 >>>> Status 2 >>>> >>>>"pc2" Status 5 >>>> >>>>"pc3" >>>> >>>> >>>>The output should look as followed: >>>> >>>>"pc1" Status 1 >>>> Status 2 >>>> >>>>"pc2" Status 5 >>>> Status 1 >>>> >>>>"pc3" Status 1 >>>> >>>>Status No. must not exist more than one in one "pc". >>>> >>>>What's wrong with my Stylesheet? >>>> >>>>Thanks >>>> >>>>Best regards >>>>Sven
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Unique IDs?, Michael Kay | Thread | Re: [xsl] Unique IDs?, Sven Waibel |
Re: [xsl] Re: Convert a XML string , Emmanouil Batsis | Date | Re: [xsl] Re: Convert a XML string , António Mota |
Month |