解析外部的 XSLT 樣式表和文件

更新: November 2007

在轉換期間,您可能需要進行數次外部資源解析。

注意事項:

XslTransform 類別在 .NET Framework 2.0 版 中已過時。您可以使用 XslCompiledTransform 類別來執行可延伸樣式表語言轉換 (XSLT)。如需詳細資訊,請參閱使用 XslCompiledTransform 類別從 XslTransform 類別轉換

在轉換期間,您可能需要進行數次外部資源解析:

  • Load 期間用來尋找外部樣式表。

  • Load 期間,用來解析樣式表中找到的任何 <xsl:include> 或 <xsl:import> 項目。

  • Transform 期間,用來解析任何 document() 函式。

使用 XmlResolver 類別

如果存取網路資源需要驗證,請使用具有可傳遞 XmlResolver 物件之 XmlResolver 參數的 Load 方法,該物件具有必要的認證屬性集。

若要使用自訂的 XmlResolver,或需要指定不同的認證,可參考下表根據外部資源何時需進行解析所列出之必要的工作。

需要解析的程序

必要的工作

Load 期間用來尋找樣式表。

若樣式表位於需要認證的資源上,請指定以 Load 當做參數的多載 XmlResolver 方法。

Load 期間用來解析 <xsl:include> 或 <xsl:import>。

指定以 XmlResolver 當做參數的多載 Load 方法。XmlResolver 是用來載入 import 或 include 陳述式所參考的樣式表。若傳入 null,則不會解析外部資源。

在轉換期間用來解析任何 document() 函式。

在轉換期間指定 XmlResolver,其方式是使用接受 XmlResolver 引數的 Transform 方法。

除了由輸入資料流所提供的初始 XML 資料之外, document() 函式還可從樣式表擷取其他的 XML 資源。由於此函式可併入能夠放置於其他位置的 XML 資料,因此您可以將含有 null 值的 XmlResolver 提供給 Transform 方法,以防止 document() 函式的執行。若要使用 document() 函式,除了具有適當的使用權限集合外,請使用以 XmlResolver 當做參數的 Transform 方法。

如需 Load 方法及其使用 XmlResolver 的詳細資訊,請參閱 XslTransform.Load(String, XmlResolver)。如需 XmlResolver 類別的詳細資訊,請參閱使用 XmlResolver 解析資源XmlResolver 類別

呼叫 Transform 方法時,即會針對載入期間所提供的辨識項計算使用權限,接著將該使用權限集合指派給整個轉換程序。若 document() 函式試圖啟始的動作所需要之使用權限,在使用權限集合中找不到,則會擲回例外狀況。

請參閱

概念

使用 XslTransform 類別進行 XSLT 轉換

XslTransform 類別實作 XSLT 處理器

XslTransform 的輸出

在不同存放區上的 XSLT 轉換

樣式表參數和擴充物件的 XsltArgumentList

使用 <msxsl:script> 加入 XSLT 樣式表指令碼

msxsl:node-set() 函式的支援

轉換中的 XPathNavigator

轉換中的 XPathNodeIterator

XslTransform 的 XPathDocument 輸入

XslTransform 的 XmlDataDocument 輸入

XslTransform 的 XmlDocument 輸入