Hallo,
xsl:otherwise
<!-- alles andere was passieren soll -->
</xsl:otherwise>Dieses im otherwise ist mein Problem. Ich möchte im otherwise sagen "Ignoriere das Style Sheet". Die XML Datei soll also so angezeigt werden als ob es das Style Sheet nicht gibt. Also zum Beispiel im Internet Explorer dieser schöne Baum.
Das geht nur wenn du Scriptest und schon vor der Anwendung der Stylesheets das VERSION-element ausliest. Also erst aus eine HTML-Datei.
Ich habe dir ein Beispiel geschrieben wie das mit dem IE geht (nein ich weiss jetzt auch nicht, wie man das jetzt gleich für beliebige Dateien macht, aber schließlich sollst du auch etwas tüfteln! ;-) )
Grüße
Thomas
<html>
<head>
<title>sample</title>
<script language = "javascript">
function init()
{
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async=false;
//hier gibst du den pfad zu deiner xml datei an
xmlDoc.load("temp.xml");
var objNodeList;
xmlDoc.setProperty("SelectionLanguage", "XPath");
// hiermit selektierst du dein version-element
// gegebenfalls muss du den pfad anpassen:
// z.B.: electSingleNode("/xmldokumentelement/version")
// du kannst in klammer xpath ausdrücke verwenden
objNodeList = xmlDoc.documentElement.selectSingleNode("version");
//hier vergleichts du was das version element einen text enthält
// du kannst hier die übliche vergleichsmethoden aus javascript nutzen
if (Number(objNodeList.text) < "2.0")
{
//ist die bedingung erfüllt (oder nicht erfüllt, ja nach dem was du
// für einen vergleich machst) ladest du die xml datei
// pfad muss du richtig angeben
location.replace("temp.xml");
}
// andernfalls führst du die transformation aus
else
{
var xslDoc= new ActiveXObject("Msxml2.DOMDocument");
xslDoc.async = false;
//hier gibst du den pfad zu deiner xsl datei an
xslDoc.load("temp.xsl");
resultDoc.innerHTML = xmlDoc.transformNode(xslDoc);
}
}
</script>
</head>
<body onload="init()" id="resultDoc">
</body>
</html>