0

XLSTドキュメントに次のものがあります

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

IE8およびIE9でこのファイルを処理しようとすると、「システムは指定されたオブジェクトを見つけることができません」というJavaScriptエラーが発生し、変換がバグアウトします。

XLST2.0の「doc-available」関数について読みましたが、それを使用しようとすると、関数が使用できないというエラーが表示されます。

私はこの質問を見ました:チェックドキュメントはxslでどのように利用できますか?-しかし、プロセッサに依存するコードを追加したくないので、「doc-available」で何かが足りないことを望んでいます。

4

1 に答える 1

1

XSLT 1.0仕様(およびIEで使用されるMSXMLはXSLT 1.0プロセッサ)により、XSLTプロセッサは「エラーを通知」するか、document()呼び出しが失敗した場合に空のノードセットを返すことで続行できると思います。したがって、バグではなくエラーを報告するMSXMLが許可されます。XSLTの外部でファイルが存在することを確認する必要があります。

于 2012-04-05T10:16:31.403 に答える