Turok:evil2001: Problem mit preceding::

Beitrag lesen

Hallo,

ich komme irgendwie mit der XPath Achsenfunktion preceding nicht klar. Ich habe eine einfache XML-Datei, die folgendermaßen aussieht (Ausschnitt):

<namensliste>
<name>
<vorname>Ernst<vorname>
<nachname>Meier<nachname>
<strasse>Waldweg<strasse>
</name>
<name>
<vorname>Fritz<vorname>
<nachname>Müller<nachname>
<strasse>Wiesenweg<strasse>
</name>
</namensliste>

Die Templates sehen so aus (verkürzt):

<fo:flow flow-name="xsl-region-body">
<xsl:apply-templates select="namensliste"/>
</fo:flow>

<xsl:template match="namensliste">
<xsl:apply-templates select="name"/>
</xsl:template>

<xsl:template match="name">
<fo:block color="red">
<xsl:value-of select="preceding::strasse/text()"/>
</fo:block>
fo:block
<xsl:apply-templates select="nachname"/>
<xsl:apply-templates select="vorname"/>
</fo:block>
</xsl:template>

Im Template "name" sollte nun immer das Element "strasse" aus dem vorhergehenden Knoten "name" ausgegeben werden. Das klappt aber nicht, ich erhalte immer das Element aus dem ersten Knoten "name" in der Datei, in diesem Falle also immer "Waldweg". Mit following klappt es, da kann ich immer auf den nachfolgenden Knoten zugreifen.

Was ist da falsch?

Herzlichen Dank
Mario