Subject: RE: 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: 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: 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
|