Beiträge getaggt mit xsl

IE Conditional Comments in XSL

Um einen Conditional Comment im Quellcode stehen zu haben

<!--[if IE]>
According to the conditional comment this is Internet Explorer<br />
<![endif]-->

braucht man folgendes im XSL, denn würde man es so reinscheiben wie oben, dann wäre es ja ein Kommentar im XSL-Code 😉

<xsl:comment><![CDATA[[if IE]>
	<link rel="stylesheet" type="text/css" href="/media/css/styles-ie.css" />
<![endif]]]></xsl:comment>

UPDATE: Dieser Codeschnipsel hat den Nachteil, dass der Inhalt nicht geparst wird, damit kann man in dem Schnipsel keine Variablen verwenden oder Knotenwerte. Da hilft dieser Schnipsel weiter:

<xsl:comment>[if IE 7]<![CDATA[>]]>
	<xsl:value-of select="concat( '&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; media=&quot;all&quot; href=&quot;', $webbasepath, /resources/browser_specific_styles/styles_ie7.css, '&quot; />')" />
<![CDATA[<![endif]]]></xsl:comment>

Tags: ,

Geschrieben in default | Kommentare deaktiviert für IE Conditional Comments in XSL

XSL: Template wählen abhängig von der Anzahl der Kindelemente

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>
<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>