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