Announcement

Collapse
No announcement yet.

Probleme bei Ausgabe der levels

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme bei Ausgabe der levels

    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:
    Code:
    <article>
    	<story>
    		<ü1></ü1>
    		<p></p>
    		<p></p>
    		<ü2></ü2>
    		<p></p>
    		<ü1></ü1>
    		<p></p>
    		<p></p>	
    	</story>
    </article>
    Ich möchte daraus folgende Struktur erzeugen:
    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>
    Vielleicht ist die Lösung ja ganz einfach. Ich habe zur Zeit keinen Einfall. Stehe wahrscheinlich auf dem Schlauch.

    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">&lt;level1&gt;</xsl:text>
    				<h1><xsl:value-of select="."/></h1>
    			</xsl:when>
    			<xsl:when test="self::ü1 and position() &gt; '1'">
    				<xsl:text disable-output-escaping="yes">&lt;/level1&gt;</xsl:text>
    				<xsl:text disable-output-escaping="yes">&lt;level1&gt;</xsl:text>
    				<h1><xsl:value-of select="."/></h1>
    			</xsl:when>
    		</xsl:choose>
    	</xsl:for-each>
    <xsl:text disable-output-escaping="yes">&lt;/level1&gt;</xsl:text>
    </xsl:for-each>
    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.

  • #2
    Hab es mit einem neuen Ansatz mittels xsl:key hin bekommen.

    Comment

    Working...
    X