共用方式為


XSL 處理期間解析外部資源

更新: November 2007

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

使用 XmlResolver 類別

XmlResolver 類別可用於解析外部資源。下表說明在 XSLT 處理期間何時會使用 XmlResolver

XSLT 工作

XmlResolver 的用途

編譯樣式表。

解析樣式表的 URI。

- 及 -

在任意 xsl:import 或 xsl:include 項目中解析 URI 參考。

執行樣式表。

解析內容文件的 URI。

- 及 -

在任意 XSLT document() 函式中解析 URI 參考。

LoadTransform 方法包括將 XmlResolver 物件做為其中一個引數的多載。如果未指定 XmlResolver,則會使用沒有任何認證的預設 XmlUrlResolver

下列清單說明何時您可能想要指定 XmlResolver 物件:

  • 如果 XSLT 處理序需要存取要求驗證的網路資源,則可使用具有必要認證的 XmlResolver

  • 如果要限制 XSLT 處理序可存取的資源,您可使用具有正確使用權限集合的 XmlSecureResolver。如果您需要開啟並不由您控制或不受信任的資源,請使用 XmlSecureResolver 類別。

  • 如果要自訂行為,您可實作自己的 XmlResolver 類別,然後使用它來解析資源。

  • 如果要確保不存取任何外部資源,您可對 XmlResolver 引數指定 null。

範例

下列範例編譯了儲存在網路資源上的樣式表。XmlUrlResolver 物件指定存取樣式表所需的認證。

' Create the credentials.
Dim myCred As NetworkCredential = New NetworkCredential(UserName,SecurelyStoredPassword,Domain)
Dim myCache As CredentialCache = New CredentialCache()
myCache.Add(new Uri("https://www.contoso.com/"), "Basic", myCred)
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred)

' Set the credentials on the XmlUrlResolver object.
Dim resolver As XmlUrlResolver = New XmlUrlResolver()
resolver.Credentials = myCache

' Compile the style sheet.
Dim xslt As XslCompiledTransform = New XslCompiledTransform()
xslt.Load("https://serverName/data/xsl/order.xsl", XsltSettings.Default, resolver)

// Create the credentials.
NetworkCredential myCred = new NetworkCredential(UserName,SecurelyStoredPassword,Domain); 
CredentialCache myCache = new CredentialCache(); 
myCache.Add(new Uri("https://www.contoso.com/"), "Basic", myCred); 
myCache.Add(new Uri("http://app.contoso.com/"), "Basic", myCred);

// Set the credentials on the XmlUrlResolver object.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = myCache;

// Compile the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("https://serverName/data/xsl/order.xsl",XsltSettings.Default, resolver);   

請參閱

概念

System.Xml 安全性考量

參考

XslCompiledTransform

XsltSettings

其他資源

XSLT 轉換