解析外部的 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() 函式試圖啟始的動作所需要之使用權限,在使用權限集合中找不到,則會擲回例外狀況。
請參閱
概念
使用 <msxsl:script> 加入 XSLT 樣式表指令碼
XslTransform 的 XPathDocument 輸入