Rolf: for-each Schleife (erstes Element)

Beitrag lesen

Hallo ich habe ein Problem mit XSLT.
Ich habe ein XML-Dokument das aus verschiedenen Schichten besteht.
Das einzige was bekannt ist, das im local-name() immer 'Schicht' vorkommt als so:

<Schicht1></Schicht1>
<Schicht2></Schicht2>
<Schicht3></Schicht3>
<Schicht4></Schicht4>

unter diesen Knoten befinden sich dann immer Informationen zu den Schichten, wobel diese nicht vorkommen müssen.

Ich navigiere nun mittels eines Dropdown-Button (Javascript) durch die Schichten indem ich immer die Positioinsnummer übergebe.

Im Xslt wird dann immer in einer for-each Schleife die Positionsnummer ausgewertet. Aufgabe ist nun als erstes anzuzeigen ob eine spezielle Information in der aktuellen Schicht, in der man sich befindet, ist.
Wenn nicht soll die Information aus der nächsten Schicht anzeigt werden, in der diese Information vorkommt.

Das erste ist kein Problem:
<xsl:for-each select="//child::*[contains(local-name(), 'Schicht')]">
<xsl:if test="position()  = $positionsnummer">

xsl:choose

<xsl:when test="boolean(information)">

<xsl:for-each select="//child::*[contains(local-name(), 'Schicht')]">

<xsl:if test="position()  = $positionsnummer">

<xsl:value-of select="information"></xsl:value-of>
</xsl:if>
</xsl:for-each>
</xsl:when>

ok jetzt wenn dien information nicht vorkommt in der aktuellen Schicht!

<xsl:when test="not (boolean(information))">

<xsl:for-each select="//child::*[contains(local-name(), 'Schicht')]">

<xsl:if test="position()  &gt; ($positionsnummer">

das geht auch bis hier, jetzt muss das erste element ausgegeben werden. jetzt werden aber leider alles elemente in allen drunterliegenden Schichten ausgegeben.
Mit Javascript kann ich das realisieren, ist aber nicht besonders elegant, da ich dann flags in javascript setzen kann aber dies geht nicht in xslt.

hat jemand eine idee?

danke