XSLT: for-each Schleifen-Vorgängerproblem

argv

Grünschnabel
hallo,

hier folgender xml-ausschnitt:
...
Code:
<Antworten>
<Antwort ID="1" Richtig="true" Text="Hier würde jetzt eine Antwort1 stehen!" />
<Antwort ID="2" Richtig="true" Text="Hier würde jetzt eine Antwort2 stehen!" />
<Antwort ID="3" Richtig="true" Text="Hier würde jetzt eine Antwort3 stehen!" />
<Antwort ID="4" Richtig="false" Text="Hier würde jetzt eine Antwort4 stehen!"/>
</Antworten>
...

so mein ziel:

will mir eine tabelle erzeugen, welche mir immer 2 antworten in einer zeile anzeigen soll, quasi in 2 spalten.
wollte das xslt-mäßig mit einer for-each anweisung lösen und bin so rangegangen:

Code:
...
<xsl:for-each select="./Antworten/Antwort">
<xsl:choose>
<xsl:when test="position() mod 2 = 0">
<tr>
<td<!-- HIER SOLL DER TEXT DES VORGÄNGERELEMENTES STEHEN --></td>
<td><xsl:value-of select="@Text"/></td>
</tr>
</xsl:when>
</xsl:choose>
</xsl:for-each>
...

ich frage quasi die position ab und wenn es eine gerade zahl ist, habe ich ja mit dessen vorgängerelement ein paar...aber wie komm ich aus der for-each schleife auf das eben behandelte vorgängerelement, bzw. gibt es andere möglichkeiten

danke
 
N'Abend....

an den vorrangegangen Knoten kommst du per preceding-sibling, in deinem Fall per
Code:
<xsl:value-of select="preceding-sibling::*/@Text" />

Ich würds aber an deiner Stelle lieber andersherum machen(following-sibling bei den Knoten 1,3 usw.)...sonst wird bei ungerader Knotenzahl der letzte unterschlagen.
 

Neue Beiträge

Zurück