Subject: RE: [xsl] Unique IDs? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 23 Mar 2005 10:24:51 -0000 |
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?, Sven Waibel | Thread | Re: [xsl] Unique IDs?, Sven Waibel |
RE: [xsl] Common Element Solution (, Pawson, David | Date | Re: [xsl] Re: Convert a XML string , Emmanouil Batsis |
Month |