Hallo,
ich habe eine ganz ordentlich strukturierte XML-Datei. Mein Problem ist, dass die einzelnen Ebenen (Levels) nicht mit ausgezeichnet sind. Diese sind jedoch zur Weiterverarbeitung notwendig.
Hier erstmal die Struktur der Ausgangsdatei:
Ich möchte daraus folgende Struktur erzeugen:
Vielleicht ist die Lösung ja ganz einfach. Ich habe zur Zeit keinen Einfall. Stehe wahrscheinlich auf dem Schlauch.
Mein Ansatz sieht so aus:
Problem ist, dass bei position() alle Kindelemente (und nicht nur die ü1 oder ü2) mitgezählt werden. Somit funktioniert dieser Ansatz nicht.
Hat jemand einen anderen Vorschlag für mich??
Ich bin für alle Hinweise dankbar.
ich habe eine ganz ordentlich strukturierte XML-Datei. Mein Problem ist, dass die einzelnen Ebenen (Levels) nicht mit ausgezeichnet sind. Diese sind jedoch zur Weiterverarbeitung notwendig.
Hier erstmal die Struktur der Ausgangsdatei:
Code:
<article> <story> <ü1></ü1> <p></p> <p></p> <ü2></ü2> <p></p> <ü1></ü1> <p></p> <p></p> </story> </article>
HTML Code:
<article> <story> <level1> <ü1></ü1> <p></p> <p></p> <level2> <ü2></ü2> <p></p> </level2> </level1> <level1> <ü1></ü1> <p></p> <p></p> </level1> </story> </article>
Mein Ansatz sieht so aus:
Code:
<xsl:for-each select="article/story"> <xsl:for-each select="child::node()"> <xsl:choose> <xsl:when test="self::ü1 and position()='1'"> <xsl:text disable-output-escaping="yes"><level1></xsl:text> <h1><xsl:value-of select="."/></h1> </xsl:when> <xsl:when test="self::ü1 and position() > '1'"> <xsl:text disable-output-escaping="yes"></level1></xsl:text> <xsl:text disable-output-escaping="yes"><level1></xsl:text> <h1><xsl:value-of select="."/></h1> </xsl:when> </xsl:choose> </xsl:for-each> <xsl:text disable-output-escaping="yes"></level1></xsl:text> </xsl:for-each>
Hat jemand einen anderen Vorschlag für mich??
Ich bin für alle Hinweise dankbar.
Comment