共用方式為


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

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

Note注意事項

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

轉換期間有些時候您可能需要解析外部資源:

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

  • Load 以針對在樣式表中找到的任何 <xsl:include><xsl:import> 項目進行解析期間。

  • Transform 以解析任何 document() 函式期間。

使用 XmlResolver 類別

若需要驗證才能存取網路資源,請使用 Load 方法,因為它會利用 XmlResolver 參數傳遞具有必要認證屬性集的 XmlResolver 物件。

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

需要解決的程序 所需的工作

Load 以尋找樣式表期間。

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

Load 以解析 <xsl:include><xsl:import> 期間。

請指定以 XmlResolver 作為參數的多載 Load 方法。XmlResolver 可用來載入由 importinclude 陳述式所參考的樣式表。若傳入 null,則不會解析外部資源。

在進行轉換以解析任何 document() 函式期間。

在轉換期間,請使用以 XmlResolver 作為引數的 Transform 方法來指定 XmlResolver

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

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

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

請參閱

概念

使用 XslTransform 類別進行 XSLT 轉換
XslTransform 類別實作 XSLT 處理器
XslTransform 的輸出
在不同存放區上的 XSLT 轉換
樣式表參數和擴充物件的 XsltArgumentList
使用 <msxsl:script> 加入 XSLT 樣式表指令碼
msxsl:node-set() 函式的支援
轉換中的 XPathNavigator
XslTransform 的 XPathDocument 輸入
XslTransform 的 XmlDataDocument 輸入
XslTransform 的 XmlDocument 輸入

其他資源

轉換中的 XPathNodeIterator