Hallo
Ich habe ein XML Dokument, das folgendermaßen aufgebaut ist:
<Seite>
<Kapitel>
<Block> 1. Text </Block>
<Unterkapitel>
<Block> 2. Text</Block>
</Unterkapitel>
<Seite>
<Unterkapitel>
<Block> 3. Text </Block>
</Unterkapitel>
</Seite>
</Kapitel>
</Seite>Ich befinde mich jetzt im 1. <Seite> Tag und möchte jetzt gerne die Blöcke mit dem 1. und 2. Text auslesen, aber nicht der mit dem 3. Text. Konkret will ich, dass er das untergeordnete <Seite> Tag komplett ignoriert! Wie ist das möglich? Gibt es sowas ähnliches wie <xsl:for-each select"not(Seite)">???
Hallo
ich hoffe du arbeitest in der xsl auch mit apply template aufrufen oder?
naja jedenfalls sollte das in der xsl dann so aussehen:
<xsl:template match="Seite">
<xsl:apply-templates select="Kapitel" />
<xsl:apply-templates select="Unterkapitel" />
</xsl:template>
<xsl:template match="Kapitel">
<xsl:apply-templates select="Block" />
<xsl:apply-templates select="Unterkapitel" />
<xsl:apply-templates select="Seite" />
</xsl:template>
<xsl:template match="Unterkapitel">
<xsl:apply-templates select="Block" />
</xsl:template>
<xsl:template match="Block">
xsl:choose
<!-- damit frägst du ab ob das "übernächst-höhere" Element kapitel ist, das wort test ist festgelegt und bleibt so stehen -->
<xsl:when test="name(../..)='Kapitel'">
<xsl:value-of select="." />
</xsl:when>
</xsl:choose>
</xsl:template>
Sonja