[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: catch from another node with the same id (NEWBIE)
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|