XslTransform.Load 方法

定义

加载 XSLT 样式表,包括在 xsl:includexsl:import 元素中引用的样式表。

重载

Load(XPathNavigator, XmlResolver, Evidence)

加载 XPathNavigator 中包含的 XSLT 样式表。 此方法允许您通过指定证据来限制样式表的权限。

Load(IXPathNavigable, XmlResolver, Evidence)

加载 IXPathNavigable 中包含的 XSLT 样式表。 此方法允许您通过指定证据来限制样式表的权限。

Load(XPathNavigator, XmlResolver)
已过时。

加载 XPathNavigator 中包含的 XSLT 样式表。

Load(IXPathNavigable, XmlResolver)
已过时。

加载 IXPathNavigable 中包含的 XSLT 样式表。

Load(XmlReader, XmlResolver)
已过时。

加载 XmlReader 中包含的 XSLT 样式表。

Load(XmlReader, XmlResolver, Evidence)

加载 XmlReader 中包含的 XSLT 样式表。 此方法允许您通过指定证据来限制样式表的权限。

Load(XPathNavigator)
已过时。

加载 XPathNavigator 中包含的 XSLT 样式表。

Load(IXPathNavigable)
已过时。

加载 IXPathNavigable 中包含的 XSLT 样式表。

Load(XmlReader)
已过时。

加载 XmlReader 中包含的 XSLT 样式表。

Load(String)

加载由一个 URL 指定的 XSLT 样式表。

Load(String, XmlResolver)

加载由一个 URL 指定的 XSLT 样式表。

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

Load(XPathNavigator, XmlResolver, Evidence)

加载 XPathNavigator 中包含的 XSLT 样式表。 此方法允许您通过指定证据来限制样式表的权限。

public:
 void Load(System::Xml::XPath::XPathNavigator ^ stylesheet, System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
member this.Load : System.Xml.XPath.XPathNavigator * System.Xml.XmlResolver * System.Security.Policy.Evidence -> unit
Public Sub Load (stylesheet As XPathNavigator, resolver As XmlResolver, evidence As Evidence)

参数

stylesheet
XPathNavigator

包含要加载的样式表的 XPathNavigator 对象。

resolver
XmlResolver

XmlResolver,用于加载 xsl:importxsl:include 元素中引用的任何样式表。 如果这为 null,则不解析外部资源。

完成 XmlResolver 方法后不缓存 Load

evidence
Evidence

在为 XSLT 样式表中的脚本块生成的程序集上设置的 Evidence

如果为 null,则不处理脚本块、不支持 XSLT document() 函数,并且不允许使用特权扩展对象。

调用方必须有 ControlEvidence 权限,才能为脚本程序集提供证据。 不完全受信任的调用方可以将此参数设置为 null

例外

当前节点不符合有效样式表的要求。

引用的样式表需要的功能是所提供的证据不允许的。

调用方尝试提供证据但没有 ControlEvidence 权限。

示例

以下示例使用来自外部源的样式表执行 XSLT 转换。 由于样式表来自不受信任的源,因此参数resolver``evidence设置为 null


public static void TransformFile (XPathNavigator xsltNav) {

 // Load the stylesheet.
 XslTransform xslt = new XslTransform();
 xslt.Load(xsltNav, null, null);

 // Transform the file.
 xslt.Transform("books.xml", "books.html", null);
}

public shared sub TransformFile (xsltNav as XPathNavigator) 
 
 ' Load the stylesheet.
 Dim xslt as XslTransform = new XslTransform()
 xslt.Load(xsltNav, nothing, nothing)

 ' Transform the file.
 xslt.Transform("books.xml", "books.html", nothing)
end sub

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

样式表从当前位置 XPathNavigator加载。 若要将加载文档的一部分用作样式表,请导航到对应于样式表开头的节点。 方法 Load 返回后,该 XPathNavigator 样式表位于) 节点上的样式表的开头 (xsl:style sheet

提供证据的方法有所不同。 下表介绍了为常见用户方案提供哪种类型的证据。

方案 要提供的证据类型
XSLT 样式表是自包含的,或来自你信任的代码库。 使用程序集中的证据。

XsltTransform xslt = new XslTransform(); 
xslt.Load(xslNav, resolver, this.GetType().Assembly.Evidence);
XSLT 样式表来自外部源。 源的源源是已知的,并且有一个可验证的 URL。 使用 URL 创建证据。

XsltTransform xslt = new XslTransform(); 
Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(style sheetURL); 
xslt.Load(xslNav,resolver,evidence);
XSLT 样式表来自外部源。 源的来源未知。 将 evidence 设置为 null。 脚本块将不进行处理,不支持 XSLT document() 函数,而且不允许特权扩展对象。

此外,还可以将 resolver 参数设置为 null。 这可确保 xsl:import 不会处理元素和 xsl:include 元素。
XSLT 样式表来自外部源。 源的来源未知,但您需要脚本支持。 从调用方请求证据。 调用方 API 必须提供一种方法来提供证据,通常是 Evidence 类。

另请参阅

适用于

Load(IXPathNavigable, XmlResolver, Evidence)

加载 IXPathNavigable 中包含的 XSLT 样式表。 此方法允许您通过指定证据来限制样式表的权限。

public:
 void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet, System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.XmlResolver * System.Security.Policy.Evidence -> unit
Public Sub Load (stylesheet As IXPathNavigable, resolver As XmlResolver, evidence As Evidence)

参数

stylesheet
IXPathNavigable

一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含 XSLT 样式表的 XPathDocument

resolver
XmlResolver

XmlResolver,用于加载 xsl:importxsl:include 元素中引用的任何样式表。 如果这为 null,则不解析外部资源。

完成 XmlResolver 方法后不缓存 Load

evidence
Evidence

在为 XSLT 样式表中的脚本块生成的程序集上设置的 Evidence

如果为 null,则不处理脚本块、不支持 XSLT document() 函数,并且不允许使用特权扩展对象。

调用方必须有 ControlEvidence 权限,才能为脚本程序集提供证据。 不完全受信任的调用方可以将此参数设置为 null

例外

加载的资源不是有效的样式表。

引用的样式表需要的功能是所提供的证据不允许的。

调用方尝试提供证据但没有 ControlEvidence 权限。

注解

备注

XslTransform 类在 .NET Framework 2.0 版中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

提供证据的方法有所不同。 下表介绍了为常见用户方案提供哪种类型的证据。

方案 要提供的证据类型
XSLT 样式表是自包含的,或来自你信任的代码库。 使用程序集中的证据。

XsltTransform xslt = new XslTransform(); 
xslt.Load(style sheet, resolver, this.GetType().Assembly.Evidence);
XSLT 样式表来自外部源。 源的源源是已知的,并且有一个可验证的 URL。 使用 URL 创建证据。

XsltTransform xslt = new XslTransform(); 
Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(style sheetURL); 
xslt.Load(style sheet,resolver,evidence);
XSLT 样式表来自外部源。 源的来源未知。 将 evidence 设置为 null。 脚本块将不进行处理,不支持 XSLT document() 函数,而且不允许特权扩展对象。

此外,还可以将 resolver 参数设置为 null。 这可确保 xsl:import 不会处理元素和 xsl:include 元素。
XSLT 样式表来自外部源。 源的来源未知,但您需要脚本支持。 从调用方请求证据。 调用方 API 必须提供一种方法来提供证据,通常是 Evidence 类。

另请参阅

适用于

Load(XPathNavigator, XmlResolver)

注意

You should pass evidence to Load() method

加载 XPathNavigator 中包含的 XSLT 样式表。

public:
 void Load(System::Xml::XPath::XPathNavigator ^ stylesheet, System::Xml::XmlResolver ^ resolver);
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver? resolver);
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.XPathNavigator stylesheet, System.Xml.XmlResolver resolver);
member this.Load : System.Xml.XPath.XPathNavigator * System.Xml.XmlResolver -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.XPathNavigator * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As XPathNavigator, resolver As XmlResolver)

参数

stylesheet
XPathNavigator

包含 XSLT 样式表的 XPathNavigator 对象。

resolver
XmlResolver

XmlResolver,用于加载 xsl:importxsl:include 元素中引用的任何样式表。 如果这为 null,则不解析外部资源。

完成 XmlResolver 方法后不缓存 Load

属性

例外

当前节点不符合有效样式表的要求。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

样式表从当前位置 XPathNavigator加载 。 若要将加载文档的一部分用作样式表,请导航到对应于样式表开头的节点。 方法 Load 返回后,将 XPathNavigator 位于样式表的开头 (节点上 xsl:style sheet) 。

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 程序集具有完全信任。 建议的做法是使用该 Load(XPathNavigator, XmlResolver, Evidence)做法提供证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

另请参阅

适用于

Load(IXPathNavigable, XmlResolver)

注意

You should pass evidence to Load() method

加载 IXPathNavigable 中包含的 XSLT 样式表。

public:
 void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet, System::Xml::XmlResolver ^ resolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver? resolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.XmlResolver resolver);
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.XmlResolver -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As IXPathNavigable, resolver As XmlResolver)

参数

stylesheet
IXPathNavigable

一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含 XSLT 样式表的 XPathDocument

resolver
XmlResolver

XmlResolver,用于加载 xsl:importxsl:include 元素中引用的任何样式表。 如果这为 null,则不解析外部资源。

完成 XmlResolver 方法后不缓存 Load

属性

例外

加载的资源不是有效的样式表。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 程序集具有完全信任。 建议的做法是使用 Load(IXPathNavigable, XmlResolver, Evidence) 该方法提供证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

另请参阅

适用于

Load(XmlReader, XmlResolver)

注意

You should pass evidence to Load() method

加载 XmlReader 中包含的 XSLT 样式表。

public:
 void Load(System::Xml::XmlReader ^ stylesheet, System::Xml::XmlResolver ^ resolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver? resolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver);
member this.Load : System.Xml.XmlReader * System.Xml.XmlResolver -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XmlReader * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As XmlReader, resolver As XmlResolver)

参数

stylesheet
XmlReader

包含 XSLT 样式表的 XmlReader 对象。

resolver
XmlResolver

XmlResolver,用于加载 xsl:importxsl:include 元素中引用的任何样式表。 如果这为 null,则不解析外部资源。

完成 XmlResolver 方法后不缓存 Load(XmlReader, XmlResolver)

属性

例外

当前节点不符合有效样式表的要求。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

此方法加载 XSLT 样式表,包括引用的任何 xsl:include 样式表和 xsl:import 元素。 样式表从其所有子级的当前节点 XmlReader 加载。 这使你可以将文档的一部分用作样式表。

方法 Load 返回后,将 XmlReader 位于样式表末尾之后的下一个节点上。 如果已到达文档结尾,XmlReader 将位于文件结尾 (EOF)。

如果样式表包含实体,则应指定一个 XmlReader 可以解析实体 (XmlReader.CanResolveEntity 返回 true) 。 在这种情况下,可以使用一个 XmlValidatingReader

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 程序集具有完全信任。 建议的做法是使用 Load(XmlReader, XmlResolver, Evidence) 该方法提供证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

另请参阅

适用于

Load(XmlReader, XmlResolver, Evidence)

加载 XmlReader 中包含的 XSLT 样式表。 此方法允许您通过指定证据来限制样式表的权限。

public:
 void Load(System::Xml::XmlReader ^ stylesheet, System::Xml::XmlResolver ^ resolver, System::Security::Policy::Evidence ^ evidence);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.XmlResolver resolver, System.Security.Policy.Evidence evidence);
member this.Load : System.Xml.XmlReader * System.Xml.XmlResolver * System.Security.Policy.Evidence -> unit
Public Sub Load (stylesheet As XmlReader, resolver As XmlResolver, evidence As Evidence)

参数

stylesheet
XmlReader

包含要加载的样式表的 XmlReader 对象。

resolver
XmlResolver

XmlResolver,用于加载 xsl:importxsl:include 元素中引用的任何样式表。 如果这为 null,则不解析外部资源。

完成 XmlResolver 方法后不缓存 Load

evidence
Evidence

在为 XSLT 样式表中的脚本块生成的程序集上设置的 Evidence

如果为 null,则不处理脚本块、不支持 XSLT document() 函数,并且不允许使用特权扩展对象。

调用方必须有 ControlEvidence 权限,才能为脚本程序集提供证据。 不完全受信任的调用方可以将此参数设置为 null

例外

当前节点不符合有效样式表的要求。

引用的样式表需要的功能是所提供的证据不允许的。

调用方尝试提供证据但没有 ControlEvidence 权限。

示例

以下示例执行 XSLT 转换,其中xsltReaderXmlReader包含样式表,并且secureURL是可用于创建的Evidence受信任 URL。 该方法 XmlSecureResolver.CreateEvidenceForUrl 用于创建 Evidence 应用于样式表的样式表。

void TransformFile( XmlReader^ xsltReader, String^ secureURL )
{
   
   // Load the stylesheet using a default XmlUrlResolver and Evidence 
   // created using the trusted URL.
   XslTransform^ xslt = gcnew XslTransform;
   xslt->Load( xsltReader, gcnew XmlUrlResolver, XmlSecureResolver::CreateEvidenceForUrl( secureURL ) );
   
   // Transform the file.
   xslt->Transform("books.xml","books.html",gcnew XmlUrlResolver);
}

public static void TransformFile (XmlReader xsltReader, String secureURL) {

 // Load the stylesheet using a default XmlUrlResolver and Evidence
 // created using the trusted URL.
 XslTransform xslt = new XslTransform();
 xslt.Load(xsltReader, new XmlUrlResolver(), XmlSecureResolver.CreateEvidenceForUrl(secureURL));

 // Transform the file.
 xslt.Transform("books.xml", "books.html", new XmlUrlResolver());
}

public shared sub TransformFile (xsltReader as XmlReader, secureURL as String) 
 
 ' Load the stylesheet using a default XmlUrlResolver and Evidence 
 ' created using the trusted URL.
 Dim xslt as XslTransform = new XslTransform()
 xslt.Load(xsltReader, new XmlUrlResolver(), XmlSecureResolver.CreateEvidenceForUrl(secureURL))

 ' Transform the file.
 xslt.Transform("books.xml", "books.html", new XmlUrlResolver())
end sub

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

此方法加载 XSLT 样式表,包括引用的任何 xsl:include 样式表和 xsl:import 元素。 样式表从其所有子级的当前节点 XmlReader 加载。 这使你可以将文档的一部分用作样式表。

方法 Load 返回后,将 XmlReader 位于样式表末尾之后的下一个节点上。 如果已到达文档结尾,XmlReader 将位于文件结尾 (EOF)。

如果样式表包含实体,则应指定一个 XmlReader 可以解析实体 (XmlReader.CanResolveEntity 返回 true) 。 在这种情况下,可以使用一个 XmlValidatingReader

提供证据的方法有所不同。 下表描述了为常见用户方案提供哪种类型的证据。

方案 要提供的证据类型
XSLT 样式表是自包含的,或来自你信任的代码库。 使用程序集中的证据。

XsltTransform xslt = new XslTransform(); &#13;&#10;xslt.Load(xslReader, resolver, this.GetType().Assembly.Evidence);
XSLT 样式表来自外部源。 源的来源是已知的,并且有一个可验证的 URL。 使用 URL 创建证据。

XsltTransform xslt = new XslTransform();&#13;&#10; Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(stylesheetURL); &#13;&#10;xslt.Load(xslReader,resolver,evidence);
XSLT 样式表来自外部源。 源的来源未知。 将 evidence 设置为 null。 脚本块将不进行处理,不支持 XSLT document() 函数,而且不允许特权扩展对象。

此外,还可以将 resolver 参数设置为 null。 这可确保 xsl:import 不会处理元素 xsl:include
XSLT 样式表来自外部源。 源的来源未知,但您需要脚本支持。 从调用方请求证据。 调用方 API 必须提供提供证据的方法,通常是类 Evidence

另请参阅

适用于

Load(XPathNavigator)

注意

You should pass evidence to Load() method

加载 XPathNavigator 中包含的 XSLT 样式表。

public:
 void Load(System::Xml::XPath::XPathNavigator ^ stylesheet);
public void Load (System.Xml.XPath.XPathNavigator stylesheet);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.XPathNavigator stylesheet);
member this.Load : System.Xml.XPath.XPathNavigator -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.XPathNavigator -> unit
Public Sub Load (stylesheet As XPathNavigator)

参数

stylesheet
XPathNavigator

包含 XSLT 样式表的 XPathNavigator 对象。

属性

例外

当前节点不符合有效样式表的要求。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

此方法加载 XSLT 样式表,包括引用的任何 xsl:include 样式表和 xsl:import 元素。 外部资源是使用 XmlUrlResolver 没有用户凭据解析的。 如果样式表 () 位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一并指定 XmlResolver 具有所需凭据的重载。

样式表从当前位置 XPathNavigator加载 。 若要仅将加载文档的一部分用作样式表,请导航到对应于样式表开头的节点。 方法 Load 返回后,将 XPathNavigator 位于样式表的开头 (节点上 xsl:style sheet) 。

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 程序集具有完全信任。 建议的做法是使用 Load(XPathNavigator, XmlResolver, Evidence) 该方法提供证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

适用于

Load(IXPathNavigable)

注意

You should pass evidence to Load() method

加载 IXPathNavigable 中包含的 XSLT 样式表。

public:
 void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XPath.IXPathNavigable stylesheet);
member this.Load : System.Xml.XPath.IXPathNavigable -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XPath.IXPathNavigable -> unit
Public Sub Load (stylesheet As IXPathNavigable)

参数

stylesheet
IXPathNavigable

一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含 XSLT 样式表的 XPathDocument

属性

例外

加载的资源不是有效的样式表。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

此方法加载 XSLT 样式表,包括引用的任何 xsl:include 样式表和 xsl:import 元素。 外部资源是使用 XmlUrlResolver 没有用户凭据解析的。 如果样式表 () 位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一并指定 XmlResolver 具有所需凭据的重载。

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 程序集具有完全信任。 建议的做法是使用 Load(IXPathNavigable, XmlResolver, Evidence) 该方法提供证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

适用于

Load(XmlReader)

注意

You should pass evidence to Load() method

加载 XmlReader 中包含的 XSLT 样式表。

public:
 void Load(System::Xml::XmlReader ^ stylesheet);
public void Load (System.Xml.XmlReader stylesheet);
[System.Obsolete("You should pass evidence to Load() method")]
public void Load (System.Xml.XmlReader stylesheet);
member this.Load : System.Xml.XmlReader -> unit
[<System.Obsolete("You should pass evidence to Load() method")>]
member this.Load : System.Xml.XmlReader -> unit
Public Sub Load (stylesheet As XmlReader)

参数

stylesheet
XmlReader

包含 XSLT 样式表的 XmlReader 对象。

属性

例外

当前节点不符合有效样式表的要求。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

示例

以下示例转换按标题对所有书籍进行排序的 XML 文件。

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;
int main()
{
   String^ filename = "books.xml";
   String^ stylesheet = "titles.xsl";
   
   // Create the reader to load the stylesheet. 
   // Move the reader to the xsl:stylesheet node.
   XmlTextReader^ reader = gcnew XmlTextReader( stylesheet );
   reader->Read();
   reader->Read();
   
   // Create the XslTransform object and load the stylesheet.
   XslTransform^ xslt = gcnew XslTransform;
   xslt->Load( reader );
   
   // Load the file to transform.
   XPathDocument^ doc = gcnew XPathDocument( filename );
   
   // Create an XmlTextWriter which outputs to the console.
   XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
   
   // Transform the file and send the output to the console.
   xslt->Transform(doc,nullptr,writer);
   writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;

public class Sample
{
  private const String filename = "books.xml";
  private const String stylesheet = "titles.xsl";

  public static void Main()
  {
    //Create the reader to load the stylesheet.
    //Move the reader to the xsl:stylesheet node.
    XmlTextReader reader = new XmlTextReader(stylesheet);
    reader.Read();
    reader.Read();

    //Create the XslTransform object and load the stylesheet.
    XslTransform xslt = new XslTransform();
    xslt.Load(reader);

    //Load the file to transform.
    XPathDocument doc = new XPathDocument(filename);

    //Create an XmlTextWriter which outputs to the console.
    XmlTextWriter writer = new XmlTextWriter(Console.Out);

    //Transform the file and send the output to the console.
    xslt.Transform(doc, null, writer);
    writer.Close();
  }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath

public class Sample

  private const filename as String = "books.xml"
  private const stylesheet as String = "titles.xsl"

  public shared sub Main()

    'Create the reader to load the stylesheet. 
    'Move the reader to the xsl:stylesheet node.
    Dim reader as XmlTextReader = new XmlTextReader(stylesheet)
    reader.Read()
    reader.Read()

    'Create the XslTransform object and load the stylesheet.
    Dim xslt as XslTransform = new XslTransform()
    xslt.Load(reader)

    'Load the file to transform.
    Dim doc as XPathDocument = new XPathDocument(filename)
             
    'Create an XmlTextWriter which outputs to the console.
    Dim writer as XmlTextWriter = new XmlTextWriter(Console.Out)

    'Transform the file and send the output to the console.
    xslt.Transform(doc, nothing, writer)
    writer.Close()  

  end sub
end class

该示例使用以下数据文件作为输入。

books.xml

<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

titles.xsl

<!--Stylesheet to sort all books by title-->
<!--Created 2/13/2001-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="bookstore">
      <books>
        <xsl:apply-templates select="book">
          <xsl:sort select="title"/>
        </xsl:apply-templates>
       </books>
   </xsl:template>
  <xsl:template match="book">
          <book><xsl:copy-of select="node()"/></book>
  </xsl:template>
</xsl:stylesheet>

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

此方法加载 XSLT 样式表,包括引用的任何 xsl:include 样式表和 xsl:import 元素。 外部资源是使用 XmlUrlResolver 没有用户凭据解析的。 如果样式表 () 位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一并指定 XmlResolver 具有所需凭据的重载。

样式表从其所有子级的当前节点 XmlReader 加载。 这使你可以将文档的一部分用作样式表。 方法 Load 返回后,将 XmlReader 位于样式表末尾之后的下一个节点上。 如果已到达文档结尾,XmlReader 将位于文件结尾 (EOF)。

如果样式表包含实体,则应指定一个 XmlReader 可以解析实体 (XmlReader.CanResolveEntity 返回 true) 。 在这种情况下,可以使用一个 XmlValidatingReader

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 程序集具有完全信任。 建议的做法是使用 Load(XmlReader, XmlResolver, Evidence) 该方法提供证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

适用于

Load(String)

加载由一个 URL 指定的 XSLT 样式表。

public:
 void Load(System::String ^ url);
public void Load (string url);
member this.Load : string -> unit
Public Sub Load (url As String)

参数

url
String

指定要加载的 XSLT 样式表的 URL。

例外

加载的资源不是有效的样式表。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

示例

以下示例将 XML 文档转换为 HTML 文档。 它显示表中每本书的 ISBN、标题和价格。

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;

int main()
{
   String^ filename = "books.xml";
   String^ stylesheet = "output.xsl";

   //Load the stylesheet.
   XslTransform^ xslt = gcnew XslTransform;
   xslt->Load( stylesheet );

   //Load the file to transform.
   XPathDocument^ doc = gcnew XPathDocument( filename );

   //Create an XmlTextWriter which outputs to the console.
   XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );

   //Transform the file and send the output to the console.
   xslt->Transform(doc,nullptr,writer,nullptr);
   writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;

public class Sample
{
  private const String filename = "books.xml";
  private const String stylesheet = "output.xsl";

  public static void Main()
  {
    //Load the stylesheet.
    XslTransform xslt = new XslTransform();
    xslt.Load(stylesheet);

    //Load the file to transform.
    XPathDocument doc = new XPathDocument(filename);

    //Create an XmlTextWriter which outputs to the console.
    XmlTextWriter writer = new XmlTextWriter(Console.Out);

    //Transform the file and send the output to the console.
    xslt.Transform(doc, null, writer, null);
    writer.Close();
  }
}
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath

Public Class Sample
    Private Shared filename1 As String = "books.xml"
    Private Shared stylesheet1 As String = "output.xsl"
    
    
    Public Shared Sub Main()
        'Load the stylesheet.
        Dim xslt As New XslTransform()
        xslt.Load(stylesheet1)
        
        'Load the file to transform.
        Dim doc As New XPathDocument(filename1)
        
        'Create an XmlTextWriter which outputs to the console.
        Dim writer As New XmlTextWriter(Console.Out)
        
        'Transform the file and send the output to the console.
        xslt.Transform(doc, Nothing, writer, Nothing)
        writer.Close()
    End Sub
End Class

示例使用下列两个输入文件。

books.xml

<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

output.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
  <HTML>
    <BODY>
      <TABLE BORDER="2">
        <TR>
          <TD>ISBN</TD>
          <TD>Title</TD>
          <TD>Price</TD>
        </TR>
        <xsl:apply-templates select="book"/>
      </TABLE>
    </BODY>
  </HTML>
</xsl:template>
<xsl:template match="book">
  <TR>
    <TD><xsl:value-of select="@ISBN"/></TD>
    <TD><xsl:value-of select="title"/></TD>
    <TD><xsl:value-of select="price"/></TD>
  </TR>
</xsl:template>
</xsl:stylesheet>

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

此方法加载 XSLT 样式表,包括引用的任何 xsl:include 样式表和 xsl:import 元素。 外部资源是使用 XmlUrlResolver 没有用户凭据的解析的。 如果样式表 () 位于需要身份验证的网络资源上,请使用采用其参数之一 XmlResolver 的重载并指定 XmlResolver 具有所需凭据的重载。

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 样式表的 URI 用于创建应用于程序集的证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本,并且会引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

适用于

Load(String, XmlResolver)

加载由一个 URL 指定的 XSLT 样式表。

public:
 void Load(System::String ^ url, System::Xml::XmlResolver ^ resolver);
public void Load (string url, System.Xml.XmlResolver? resolver);
public void Load (string url, System.Xml.XmlResolver resolver);
member this.Load : string * System.Xml.XmlResolver -> unit
Public Sub Load (url As String, resolver As XmlResolver)

参数

url
String

指定要加载的 XSLT 样式表的 URL。

resolver
XmlResolver

XmlResolver 用于加载该样式表以及 xsl:importxsl:include 元素中引用的任何样式表。

如果这是 null,将使用不具有用户凭据的默认 XmlUrlResolver 来打开样式表。 不使用默认的 XmlUrlResolver 来解析样式表中的任何外部资源,因此将不解析 xsl:importxsl:include 元素。

完成 XmlResolver 方法后不缓存 Load(String, XmlResolver)

例外

加载的资源不是有效的样式表。

样式表包含嵌入式脚本,并且调用方没有 UnmanagedCode 权限。

示例

以下示例将 XML 文档转换为 HTML 文档。 该示例加载一个 XSLT 样式表,其中包含引用另一个 xsl:include 样式表的元素。 Load传递给XmlUrlResolver方法,该方法设置访问包含样式表的网络资源所需的凭据。

using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Net;

public class Sample
{
   private const String filename = "books.xml";
   private const String stylesheet = "sort.xsl";

   public static void Main()
   {
      //Create the XslTransform.
     XslTransform xslt = new XslTransform();

     //Create a resolver and set the credentials to use.
     XmlUrlResolver resolver = new XmlUrlResolver();
     resolver.Credentials = CredentialCache.DefaultCredentials;

     //Load the stylesheet.
     xslt.Load(stylesheet, resolver);

     //Load the XML data file.
     XPathDocument doc = new XPathDocument(filename);

     //Create the XmlTextWriter to output to the console.
     XmlTextWriter writer = new XmlTextWriter(Console.Out);

     //Transform the file.
     xslt.Transform(doc, null, writer, null);
     writer.Close();
  }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
Imports System.Net

public class Sample

   private shared filename as String = "books.xml"
   private shared stylesheet as String = "sort.xsl"

   public shared sub Main()
   
     'Create the XslTransform.
     Dim xslt as XslTransform = new XslTransform()

     'Create a resolver and set the credentials to use.
     Dim resolver as XmlUrlResolver = new XmlUrlResolver()
     resolver.Credentials = CredentialCache.DefaultCredentials

     'Load the stylesheet.
     xslt.Load(stylesheet, resolver)

     'Load the XML data file.
     Dim doc as XPathDocument = new XPathDocument(filename)

     'Create the XmlTextWriter to output to the console.             
     Dim writer as XmlTextWriter = new XmlTextWriter(Console.Out)

     'Transform the file.
     xslt.Transform(doc, nothing, writer, nothing)
     writer.Close()

  end sub
end class

该示例使用以下数据文件作为输入。

books.xml

<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

sort.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:template match="bookstore"/>
  <xsl:include href="http://serverA/includefile.xsl"/>  
  <xsl:template match="book">
     <TR>
      <TD><xsl:value-of select="@ISBN"/></TD>
      <TD><xsl:value-of select="title"/></TD>
      <TD><xsl:value-of select="price"/></TD>
    </TR>
  </xsl:template>
</xsl:stylesheet>

includefile.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
  <HTML>
    <BODY>
    <TABLE BORDER="2">
      <TR>
        <TD>ISBN</TD>
        <TD>Title</TD>
        <TD>Price</TD>
      </TR>
    <xsl:apply-templates select="book">
      <xsl:sort select="@ISBN"/>
    </xsl:apply-templates>
    </TABLE>
    </BODY>
  </HTML>
</xsl:template>
</xsl:stylesheet>

注解

备注

XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移

XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform

如果样式表包含嵌入的脚本,则脚本将编译为程序集。 样式表的 URI 用于创建应用于程序集的证据。

备注

如果调用方没有 UnmanagedCode 权限,则不会编译嵌入脚本并引发 a SecurityException 。 有关更多信息,请参见SecurityPermissionSecurityPermissionFlag.UnmanagedCode

另请参阅

适用于