Subject: RE: [xsl] catch from another node with the same id (NEWBIE) From: TSchutzerWeissmann@xxxxxxxxxxxxxxxx Date: Tue, 10 Sep 2002 12:10:39 +0100 |
Hi Thomas [snip] > > instead of the "id" i need the product name (bezeichnung) which is > stored in a completly different node "/page/info/produkte/" > but with the > correspondending "id" > <page> > <info> > <produkte> > <produkt id="1" bezeichnung="Produkt A"> > <text>Produktebeschrieb A</text> > </produkt> > <produkt id="2" bezeichnung="Produkt B"> > <text>Produktebeschrieb B</text> > </produkt> > <produkt id="3" bezeichnung="Produkt C"> > <text>Produktebeschrieb C</text> > </produkt> > ........ > </produkte > </info> > </page> > > can I use some kind of variable to do it? Or how do I get the > correspondending "bezeichnung" attribute from the other node? > Any hints? Close - but you want a key rather than a variable. Declare the key outside of any template. <xsl:key name="productNameByID" match="info/produkte/produkt" use="@id"/> This will let you "catch" nodes in the document that are matched by the match expression, using their id attribute. You use the key inside your for-each like so: <fo:block> <!-- <xsl:value-of select="@id"/> --> <xsl:value-of select="key('productNameByID',@id)/@bezeichnung"/> </fo:block> Keys also speed things up considerably and are used for grouping. Have fun. Tom XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] encoding and XSL Transfor, Michael Kay | Thread | [xsl] catch from another node with , thomas |
[xsl] entities out of scope in incl, Jens Schriver | Date | [xsl] catch from another node with , thomas |
Month |