XslTransform.Load 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
加载 XSLT 样式表,包括在 xsl:include
和 xsl: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:import
和 xsl:include
元素中引用的任何样式表。 如果这为 null
,则不解析外部资源。
完成 XmlResolver 方法后不缓存 Load。
- evidence
- Evidence
在为 XSLT 样式表中的脚本块生成的程序集上设置的 Evidence。
如果为 null
,则不处理脚本块、不支持 XSLT document()
函数,并且不允许使用特权扩展对象。
调用方必须有 ControlEvidence
权限,才能为脚本程序集提供证据。 不完全受信任的调用方可以将此参数设置为 null
。
例外
当前节点不符合有效样式表的要求。
示例
以下示例使用来自外部源的样式表执行 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 样式表是自包含的,或来自你信任的代码库。 | 使用程序集中的证据。
|
XSLT 样式表来自外部源。 源的源源是已知的,并且有一个可验证的 URL。 | 使用 URL 创建证据。
|
XSLT 样式表来自外部源。 源的来源未知。 | 将 evidence 设置为 null 。 脚本块将不进行处理,不支持 XSLT document() 函数,而且不允许特权扩展对象。此外,还可以将 resolver 参数设置为 null 。 这可确保 xsl:import 不会处理元素和 xsl:include 元素。 |
XSLT 样式表来自外部源。 源的来源未知,但您需要脚本支持。 | 从调用方请求证据。 调用方 API 必须提供一种方法来提供证据,通常是 Evidence 类。 |
另请参阅
- Credentials
- NetworkCredential
- CredentialCache
- SecurityZone
- XmlSecureResolver
- CreateEvidenceForUrl(String)
适用于
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:import
和 xsl:include
元素中引用的任何样式表。 如果这为 null
,则不解析外部资源。
完成 XmlResolver 方法后不缓存 Load。
- evidence
- Evidence
在为 XSLT 样式表中的脚本块生成的程序集上设置的 Evidence。
如果为 null
,则不处理脚本块、不支持 XSLT document()
函数,并且不允许使用特权扩展对象。
调用方必须有 ControlEvidence
权限,才能为脚本程序集提供证据。 不完全受信任的调用方可以将此参数设置为 null
。
例外
加载的资源不是有效的样式表。
注解
备注
XslTransform 类在 .NET Framework 2.0 版中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
提供证据的方法有所不同。 下表介绍了为常见用户方案提供哪种类型的证据。
方案 | 要提供的证据类型 |
---|---|
XSLT 样式表是自包含的,或来自你信任的代码库。 | 使用程序集中的证据。
|
XSLT 样式表来自外部源。 源的源源是已知的,并且有一个可验证的 URL。 | 使用 URL 创建证据。
|
XSLT 样式表来自外部源。 源的来源未知。 | 将 evidence 设置为 null 。 脚本块将不进行处理,不支持 XSLT document() 函数,而且不允许特权扩展对象。此外,还可以将 resolver 参数设置为 null 。 这可确保 xsl:import 不会处理元素和 xsl:include 元素。 |
XSLT 样式表来自外部源。 源的来源未知,但您需要脚本支持。 | 从调用方请求证据。 调用方 API 必须提供一种方法来提供证据,通常是 Evidence 类。 |
另请参阅
- Credentials
- NetworkCredential
- CredentialCache
- SecurityZone
- XmlSecureResolver
- CreateEvidenceForUrl(String)
适用于
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:import
和 xsl: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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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:import
和 xsl: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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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)
参数
- resolver
- XmlResolver
XmlResolver,用于加载 xsl:import
和 xsl: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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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)
参数
- resolver
- XmlResolver
XmlResolver,用于加载 xsl:import
和 xsl:include
元素中引用的任何样式表。 如果这为 null
,则不解析外部资源。
完成 XmlResolver 方法后不缓存 Load。
- evidence
- Evidence
在为 XSLT 样式表中的脚本块生成的程序集上设置的 Evidence。
如果为 null
,则不处理脚本块、不支持 XSLT document()
函数,并且不允许使用特权扩展对象。
调用方必须有 ControlEvidence
权限,才能为脚本程序集提供证据。 不完全受信任的调用方可以将此参数设置为 null
。
例外
当前节点不符合有效样式表的要求。
示例
以下示例执行 XSLT 转换,其中xsltReader
XmlReader包含样式表,并且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 样式表是自包含的,或来自你信任的代码库。 | 使用程序集中的证据。
|
XSLT 样式表来自外部源。 源的来源是已知的,并且有一个可验证的 URL。 | 使用 URL 创建证据。
|
XSLT 样式表来自外部源。 源的来源未知。 | 将 evidence 设置为 null 。 脚本块将不进行处理,不支持 XSLT document() 函数,而且不允许特权扩展对象。此外,还可以将 resolver 参数设置为 null 。 这可确保 xsl:import 不会处理元素 xsl:include 。 |
XSLT 样式表来自外部源。 源的来源未知,但您需要脚本支持。 | 从调用方请求证据。 调用方 API 必须提供提供证据的方法,通常是类 Evidence 。 |
另请参阅
- Credentials
- NetworkCredential
- CredentialCache
- SecurityZone
- XmlSecureResolver
- CreateEvidenceForUrl(String)
适用于
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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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)
参数
- 属性
例外
当前节点不符合有效样式表的要求。
样式表包含嵌入式脚本,并且调用方没有 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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.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:import
和 xsl:include
元素中引用的任何样式表。
如果这是 null
,将使用不具有用户凭据的默认 XmlUrlResolver 来打开样式表。 不使用默认的 XmlUrlResolver 来解析样式表中的任何外部资源,因此将不解析 xsl:import
和 xsl: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 。 有关更多信息,请参见SecurityPermission和SecurityPermissionFlag.UnmanagedCode。