Thomas J.S.: xPath: Verständnisproblem bei Adressierung mit Positionsangabe

Beitrag lesen

Hallo,

ich habe ein Verständnisproblem bei der Adressierung von Knoten.
Der Locationpath ".//nachname" müsste meiner Meinung nach ein Knotenset mit vier Knoten zurückgeben.

Nein. 1) der Punkt ist (hier) unnötig. 2) du bekommst genau den ersten gefundenen <nachnamen> zurück.

Die count Funktion gibt auch die Zahl vier zurück.

Ja, weil count() eben zählt. count() zählt dir hier alle gefundenen <nachnamen> zusammen.

Wenn ich aber die Knoten mit einem Prädikat adressieren möchte bekomme ich nur bei "[1]" ein Ergebniss.

Ja, ist logisch: du bekommst genau den ersten gefundenen <nachnamen> zurück.

Und weil du jedes mal von vorne beginnst gibt es keinen 2. <nachname>; teste mal: <xsl:value-of select ="boolean(//nachname[2])" /> du bekommst "false" zurück.

Du musst <nachname> in einem echten Knotenset bekommen:
<xsl:variable name="namen" select="//nachname" />
<p><b>Anzahl gesammt:<xsl:value-of select="count($namen)"/></b></p>
<p><xsl:value-of select ="$namen[1]" /></p>
<p><xsl:value-of select ="$namen[2]" /></p>
<p><xsl:value-of select ="$namen[3]" /></p>
<p><xsl:value-of select ="$namen[4]" /></p>

Grüße
Thomas