Subject: RE: [xsl] Unique IDs? From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 23 Mar 2005 09:04:45 -0000 |
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 -> |
---|---|---|
[xsl] Unique IDs?, Sven Waibel | Thread | Re: [xsl] Unique IDs?, Sven Waibel |
RE: [xsl] Common Element Solution (, Michael Kay | Date | Re: [xsl] Unique IDs?, Sven Waibel |
Month |