Re: [xsl] Unique IDs?

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