XSL: Template wählen abhängig von der Anzahl der Kindelemente
Geschrieben von natalia in default am 15. Juli 2010
Gegeben ist eine Struktur, in der in einem Knoten entweder 0 oder mehr Kind-Knoten sind . Wenn es 0 Kind-Knoten gibt, soll eine Meldung ausgegeben werden, andernfalls die Liste der Kinder.
<root>
<parent>
<child> <name> Eins</name> </child>
<child> <name> Zwei</name> </child>
</parent>
</root>
<root>
<parent>
<child><name>Eins</name></child>
<child><name>Zwei</name></child>
</parent>
</root>
<xsl:template match ="root" >
<xsl:apply-templates select ="parent" />
</xsl:template>
<xsl:template match ="parent[count(child) = 0]" >
Leer
</xsl:template>
<xsl:template match ="parent" >
<ul>
<xsl:apply-templates select ="child" />
</ul>
</xsl:template>
<xsl:template match ="child" >
<li> <xsl:value-of select ="name" /> </li>
</xsl:template>
<xsl:template match="root">
<xsl:apply-templates select="parent" />
</xsl:template>
<xsl:template match="parent[count(child) = 0]">
Leer
</xsl:template>
<xsl:template match="parent">
<ul>
<xsl:apply-templates select="child" />
</ul>
</xsl:template>
<xsl:template match="child">
<li><xsl:value-of select="name" /></li>
</xsl:template>
Danke, genau was ich gesucht habe 🙂