Ich habe Probleme beim Testen eines vorhergehenen Elementes auf der preceding-sibling-Achse. Ziel soll es sein aus einen para-Element ein para_1-Element zu machen, falls dem ein ueberschrift-Element direkt vorausgeht.
Folgender XML-Code liegt zum Beispiel vor:
Alles anzeigen
Dazu das XSL-Template, was leider nicht seine eigentliche Funktion tut, da der Test fehlschlägt.
Ich habe schon x Sachen ausprobiert - ich weiß einfach nicht weiter
Edit: Weiß wirklich keiner auch nur einen Ansatz? Ich habe leider immer noch keine Lösung gefunden.
Folgender XML-Code liegt zum Beispiel vor:
Quellcode
- <abschnitt>
- <abschnitt>
- <para>Text</para>
- <para>Text</para>
- </abschnitt>
- <abschnitt>
- <ueberschrift>Text</ueberschrift>
- <para>Text</para> <!-- soll zu <para_1> werden-->
- <para>Text</para>
- <ueberschrift>Text</ueberschrift>
- <para>Text</para> <!-- soll zu <para_1> werden-->
- <para>Text</para>
- <para>Text</para>
- </abschnitt>
- </abschnitt>
Dazu das XSL-Template, was leider nicht seine eigentliche Funktion tut, da der Test fehlschlägt.
Quellcode
- <xsl:template match="para">
- <xsl:choose>
- <xsl:when test="preceding-sibling::node()[position()-1][ueberschrift]"> <!-- Hier der XPath-Ausdruck - das Problem -->
- <para_1><xsl:copy-of select="node()"/></para_1>
- </xsl:when>
- <xsl:otherwise>
- <para><xsl:copy-of select="node()"/></para>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
Ich habe schon x Sachen ausprobiert - ich weiß einfach nicht weiter
Edit: Weiß wirklich keiner auch nur einen Ansatz? Ich habe leider immer noch keine Lösung gefunden.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von j.per ()