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:
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
Folgender XML-Code liegt zum Beispiel vor:
Code:
<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.
Code:
<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>
Comment