<xsl:template match="vorname">
<td>
<xsl:value-of select="."/>
</td>
<td>
<xsl:value-of select="/adressbuch/eintrag/@id"/>
</td>
</xsl:template>
Warum wird mir die id des ersten "eintrag" Elementes ausgewählt. Das Templaterule wird doch nur aufgerufen, wenn die id=13 ist, was man ja am Vornamen sieht.
Das muss schon ../@id heissen, ansonsten verlierst du den Kontext, in dem du dich befindest, sprich, das erste Element wird genommen statt des dem aktuellen übergeordnetem.
Schreibe ich aber das Template folgendermaßen um, funktioniert es. Wieso?
Weil du hier nicht durch einen absoluten Pfad den Kontext verlässt.