2012-04-05 7 views
0

Ich habe nach dem in einem XLST Dokumentxsl Dokument Test in IE8 und 9 fehlgeschlagen?

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:str="http://xsltsl.org/string" xmlns:dt="http://xsltsl.org/date-time" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes"> 
<xsl:if test="document('../folder/somefile.xml')"> 
    <!-- do stuff --> 
</xsl:if> 

In IE8 und IE9 versuchen, diese Datei führt zu einem JavaScript-Fehler zu verarbeiten, „Das System kann das Objekt nicht finden spezifiziert“ - und die Transformation Fehler aus.

Ich habe über eine 'doc-available' Funktion in XLST2.0 gelesen, aber der Versuch, es zu verwenden, gibt mir nur einen Fehler, dass die Funktion nicht verfügbar ist.

Ich habe diese Frage gesehen: How check document is available in xsl? - aber ich möchte keinen prozessorabhängigen Code hinzufügen, also hoffe ich, dass ich gerade etwas mit 'doc-available' verpasse.

Antwort

1

Ich denke, the XSLT 1.0 specification (und MSXML verwendet von IE ist ein XSLT 1.0-Prozessor) ermöglicht dem XSLT-Prozessor entweder "einen Fehler signalisieren" oder durch ein leeres Knoten zurückgeben, wenn ein document() Aufruf fehlschlägt. Daher ist MSXML, das einen Fehler meldet, erlaubt und kein Fehler. Sie müssen außerhalb von XSLT sicherstellen, dass die Datei existiert.