29.
Scripts in XSL-Dateien verwenden (13.06.2000)
Die Ermittlung der Anzahl von Kindelementen in einer XML-Struktur sollte sich eigentlich leicht mit XSL(T)-Methoden bewerkstelligen lassen, aber mit Anweisungen wie <xsl:value-of select="count(item)" /> bewegt sich
im MSIE 5.x nichts ... Nach Stunden ergebnisloser Tüftelei enstand die Idee, diese Funktionalität via XML-DOM und einem JavaScript nachzurüsten. Doch wie bindet man ein Script (oder ein CSS) in eine XSL-Datei ein?
Dazu dienen sogenannte CDATA-Abschnitte.
<xsl:script language="JavaScript" type="text/javascript">
<![CDATA[
function Anzahl(suchstr)
{
return selectNodes(suchstr).length;
}
]]>
</xsl:script>
<xsl:script> und <xsl:eval> sind von Microsoft eingeführte (proprietäre) XSL-Anweisungen, die aber im IE-Umfeld durchaus nützlich sind. Das verwendete Beispiel ist mit dem im
Tipp 28 verwendeten
bis auf die modifizierte XSL-Datei identisch. Die Ausgabe wird mit der folgenden Anweisung realisiert.
Diese Tabelle beinhaltet: <B>
<xsl:eval>Anzahl("/buecher/eintrag")</xsl:eval>
</B> Titel.
Sollen dagegen JavaScript-Funktionen in die generierten HTML-Dokumente integriert werden, empfiehlt sich diese Methode:
<script language="JavaScript" type="text/javascript">
<xsl:comment>
<![CDATA[
function xyz()
{
/* Script-Code */
}
]]>
</xsl:comment>
</script>
|