解析外部的 XSLT 樣式表和文件
在轉換期間,您可能需要進行數次外部資源解析。
注意事項 |
---|
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 以解析 |
請指定以 XmlResolver 作為參數的多載 Load 方法。XmlResolver 可用來載入由 |
在進行轉換以解析任何 |
在轉換期間,請使用以 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 輸入