XslCompiledTransform.Transform 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
执行 XSLT 转换。
重载
注解
备注
以调试模式编译的 XSLT 与以发布模式编译的 XSLT 之间有一些差别。 在有些情况下,以调试模式编译的样式表在 Load 期间不会引发错误,但以后在 Transform 期间会失败。 以发布模式编译的同一个样式表在 Load 期间就会失败。 例如,当某个表达式需要节点集,而分配给该表达式的变量不是节点集类型的时,就会出现这种情况。
Transform(XmlReader, XsltArgumentList, TextWriter)
使用 XmlReader 对象指定的输入文档执行转换,然后将结果输出到 TextWriter。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As TextWriter)
参数
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- TextWriter
要输出到的 TextWriter。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
注解
如果样式表包含 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析该函数。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
使用 IXPathNavigable 对象指定的输入文档执行转换,然后将结果输出到 XmlWriter。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 Microsoft .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
注解
如果启用了 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析它。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
此方法不支持 xsl:strip-space
该元素。 如果编译的样式表包含 xsl:strip-space
元素,则必须使用 Transform 采用输入 XmlReader 参数的重载。
IXPathNavigable 接口在 XmlNode 和 XPathDocument 类中实现。 这两个类表示 XML 数据的内存中缓存。
XmlNode 类基于 W3C 文档对象模型 (DOM) 并具有编辑功能。
XPathDocument 类是基于 XPath 数据模型的只读数据存储。 XPathDocument 是 XSLT 处理建议使用的类。 与 XmlNode 类相比,此类的性能更强。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须创建一个仅包含节点片段的对象,并将该对象传递给 Transform 方法。 有关详细信息,请参阅如何:转换节点片段。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
使用 IXPathNavigable 对象指定的输入文档执行转换,然后将结果输出到 TextWriter。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As TextWriter)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 Microsoft .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- TextWriter
要输出到的 TextWriter。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
注解
如果启用了 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析它。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
此方法不支持 xsl:strip-space
该元素。 如果编译的样式表包含 xsl:strip-space
元素,则必须使用 Transform 采用输入 XmlReader 参数的重载。
IXPathNavigable 接口在 XmlNode 和 XPathDocument 类中实现。 这两个类表示 XML 数据的内存中缓存。
XmlNode 类基于 W3C 文档对象模型 (DOM) 并具有编辑功能。
XPathDocument 类是基于 XPath 数据模型的只读数据存储。 XPathDocument 是 XSLT 处理建议使用的类。 与 XmlNode 类相比,此类的性能更强。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须创建一个仅包含节点片段的对象,并将该对象传递给 Transform 方法。 有关详细信息,请参阅如何:转换节点片段。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, Stream)
使用 IXPathNavigable 对象指定的输入文档执行转换,然后将结果输出到流。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As Stream)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 Microsoft .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- Stream
要输出到的流。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
示例
以下示例执行 XSLT 转换并输出到 a FileStream.
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the FileStream.
using (FileStream fs = new FileStream(@"c:\data\output.xml", FileMode.Create))
{
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), null, fs);
}
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the FileStream.
Using fs As New FileStream("c:\data\output.xml", FileMode.Create)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), Nothing, fs)
End Using
注解
如果启用了 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析它。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
此方法不支持 xsl:strip-space
该元素。 如果编译的样式表包含 xsl:strip-space
元素,则必须使用 Transform 采用输入 XmlReader 参数的重载。
IXPathNavigable 接口在 XmlNode 和 XPathDocument 类中实现。 这两个类表示 XML 数据的内存中缓存。
XmlNode 类基于 W3C 文档对象模型 (DOM) 并具有编辑功能。
XPathDocument 类是基于 XPath 数据模型的只读数据存储。 XPathDocument 是 XSLT 处理建议使用的类。 与 XmlNode 类相比,此类的性能更强。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须创建一个仅包含节点片段的对象,并将该对象传递给 Transform 方法。 有关详细信息,请参阅如何:转换节点片段。
另请参阅
适用于
Transform(XmlReader, XsltArgumentList, XmlWriter)
使用 XmlReader 对象指定的输入文档执行转换,然后将结果输出到 XmlWriter。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter)
参数
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
注解
如果样式表包含 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析该函数。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
另请参阅
适用于
Transform(XmlReader, XsltArgumentList, Stream)
使用 XmlReader 对象指定的输入文档执行转换,然后将结果输出到流。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As Stream)
参数
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- Stream
要输出到的流。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
注解
如果样式表包含 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析该函数。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
另请参阅
适用于
Transform(String, String)
使用 URI 指定的输入文档执行转换,然后将结果输出到文件。
public:
void Transform(System::String ^ inputUri, System::String ^ resultsFile);
public void Transform (string inputUri, string resultsFile);
member this.Transform : string * string -> unit
Public Sub Transform (inputUri As String, resultsFile As String)
参数
- inputUri
- String
输入文档的 URI。
- resultsFile
- String
输出文件的 URI。
例外
inputUri
或 resultsFile
值为 null
。
执行 XSLT 转换时出错。
无法找到输入文档。
inputUri
或 resultsFile
值包含无法找到的文件名或目录。
inputUri
或 resultsFile
不是有效 URI。
加载输入文档时出现分析错误。
示例
以下示例执行到文件的转换和输出。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
此示例使用以下两个输入文件:
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>
注解
此方法使用没有用户凭据的默认值 XmlUrlResolver 来解析输入和输出文档。 如果其中任一资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
XmlReader使用默认设置加载输入文档。 DTD 处理在 .XmlReader 如果需要 DTD 处理,请创建启用了此功能的一个 XmlReader ,并将其传递给 Transform 该方法。
另请参阅
适用于
Transform(String, XsltArgumentList, TextWriter)
使用 URI 指定的输入文档执行转换,然后将结果输出到 TextWriter。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As TextWriter)
参数
- inputUri
- String
输入文档的 URI。
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- TextWriter
要输出到的 TextWriter。
例外
inputUri
或 results
值为 null
。
执行 XSLT 转换时出错。
inputUri
值包含无法找到的文件名或目录。
inputUri
不是有效的 URI。
加载输入文档时出现分析错误。
示例
以下示例执行 XSLT 转换并输出字符串。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("HTML_out.xsl");
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform("books.xml", null, writer);
HTMLoutput = writer.ToString();
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("HTML_out.xsl")
' Transform the file and output an HTML string.
Dim HTMLoutput As String
Dim writer As New StringWriter()
xslt.Transform("books.xml", Nothing, writer)
HTMLoutput = writer.ToString()
writer.Close()
注解
此方法使用没有用户凭据的默认值 XmlUrlResolver 解析在样式表中找到的 XSLT document()
函数的输入文档和任何实例。 如果其中任一资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
XmlReader使用默认设置加载输入文档。 DTD 处理在 .XmlReader 如果需要 DTD 处理,请创建启用了此功能的一个 XmlReader ,并将其传递给 Transform 该方法。
另请参阅
适用于
Transform(String, XsltArgumentList, Stream)
使用 URI 指定的输入文档执行转换,然后将结果输出到流。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As Stream)
参数
- inputUri
- String
输入文档的 URI。
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- Stream
要输出到的流。
例外
inputUri
或 results
值为 null
。
执行 XSLT 转换时出错。
inputUri
值包含无法找到的文件名或目录。
inputUri
不是有效的 URI。
加载输入文档时出现分析错误。
注解
此方法使用没有用户凭据的默认值 XmlUrlResolver 解析在样式表中找到的 XSLT document()
函数的输入文档和任何实例。 如果其中任一资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
XmlReader使用默认设置加载输入文档。 DTD 处理在 .XmlReader 如果需要 DTD 处理,请创建启用了此功能的一个 XmlReader ,并将其传递给 Transform 该方法。
另请参阅
适用于
Transform(IXPathNavigable, XmlWriter)
使用 IXPathNavigable 对象指定的输入文档执行转换,然后将结果输出到 XmlWriter。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, results As XmlWriter)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 Microsoft .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
示例
以下示例执行 XSLT 转换并输出到 XmlWriter 对象。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), writer)
writer.Close()
注解
如果启用了 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析它。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
此方法不支持 xsl:strip-space
该元素。 如果编译的样式表包含 xsl:strip-space
元素,则必须使用 Transform 采用输入 XmlReader 参数的重载。
IXPathNavigable 接口在 XmlNode 和 XPathDocument 类中实现。 这两个类表示 XML 数据的内存中缓存。
XmlNode 类基于 W3C 文档对象模型 (DOM) 并具有编辑功能。
XPathDocument 类是基于 XPath 数据模型的只读数据存储。 XPathDocument 是 XSLT 处理建议使用的类。 与 XmlNode 类相比,此类的性能更强。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须创建一个仅包含节点片段的对象,并将该对象传递给 Transform 方法。 有关详细信息,请参阅如何:转换节点片段。
另请参阅
适用于
Transform(XmlReader, XmlWriter)
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, results As XmlWriter)
参数
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
示例
以下示例转换books.xml文件中的第一本书。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
XmlReader reader = XmlReader.Create("books.xml");
reader.MoveToContent();
// Execute the transformation.
xslt.Transform(reader, writer);
writer.Close();
reader.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
Dim reader As XmlReader = XmlReader.Create("books.xml")
reader.MoveToContent()
' Execute the transformation.
xslt.Transform(reader, writer)
writer.Close()
reader.Close()
注解
如果启用了 XSLT document()
函数,则会使用 XmlUrlResolver 无用户凭据解析它。 如果外部资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
另请参阅
适用于
Transform(String, XmlWriter)
使用 URI 指定的输入文档执行转换,然后将结果输出到 XmlWriter。
public:
void Transform(System::String ^ inputUri, System::Xml::XmlWriter ^ results);
public void Transform (string inputUri, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, results As XmlWriter)
参数
- inputUri
- String
输入文档的 URI。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
例外
inputUri
或 results
值为 null
。
执行 XSLT 转换时出错。
inputUri
值包含无法找到的文件名或目录。
inputUri
不是有效的 URI。
加载输入文档时出现分析错误。
示例
以下示例执行 XSLT 转换并输出到 XmlWriter 对象。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform("books.xml", writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform("books.xml", writer)
writer.Close()
注解
此方法使用没有用户凭据的默认值 XmlUrlResolver 解析在样式表中找到的 XSLT document()
函数的输入文档和任何实例。 如果其中任一资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
XmlReader使用默认设置加载输入文档。 DTD 处理在 .XmlReader 如果需要 DTD 处理,请创建启用了此功能的一个 XmlReader ,并将其传递给 Transform 该方法。
此方法不支持 xsl:strip-space
该元素。 如果编译的样式表包含 xsl:strip-space
元素,则必须使用 Transform 采用输入 XmlReader 参数的重载。
另请参阅
适用于
Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)
使用 XmlReader 对象指定的输入文档执行转换,然后将结果输出到 XmlWriter。 XsltArgumentList 提供附加的运行时参数,而 XmlResolver 解析 XSLT document()
函数。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
参数
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
- documentResolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
例外
input
或 results
值为 null
。
执行 XSLT 转换时出错。
示例
以下示例使用一个 XmlSecureResolver 解析 XSLT document()
函数。
// Create a resolver and specify the necessary credentials.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver);
// Transform the file.
using (XmlReader reader = XmlReader.Create("books.xml"))
{
using (XmlWriter writer = XmlWriter.Create("output.xml"))
{
xslt.Transform(reader, null, writer, resolver);
}
}
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
Dim settings As New XsltSettings()
settings.EnableDocumentFunction = True
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver)
' Transform the file.
Using reader As XmlReader = XmlReader.Create("books.xml")
Using writer As XmlWriter = XmlWriter.Create("output.xml")
xslt.Transform(reader, Nothing, writer, resolver)
End Using
End Using
另请参阅
适用于
Transform(String, XsltArgumentList, XmlWriter)
使用 URI 指定的输入文档执行转换,然后将结果输出到 XmlWriter。 XsltArgumentList 提供附加的运行时参数。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As XmlWriter)
参数
- inputUri
- String
输入文档的 URI。
- arguments
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。 此值可为 null
。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
例外
inputUri
或 results
值为 null
。
执行 XSLT 转换时出错。
inputtUri
值包含无法找到的文件名或目录。
inputUri
不是有效的 URI。
加载输入文档时出现分析错误。
示例
以下示例使用对象 XsltArgumentList 创建表示当前日期和时间的参数。
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create the XslCompiledTransform and load the stylesheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("order.xsl");
// Create the XsltArgumentList.
XsltArgumentList xslArg = new XsltArgumentList();
// Create a parameter which represents the current date and time.
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
// Transform the file.
using (XmlWriter w = XmlWriter.Create("output.xml"))
{
xslt.Transform("order.xml", xslArg, w);
}
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Public Class Sample
Public Shared Sub Main()
' Create the XslCompiledTransform and load the stylesheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("order.xsl")
' Create the XsltArgumentList.
Dim xslArg As New XsltArgumentList()
' Create a parameter which represents the current date and time.
Dim d As DateTime = DateTime.Now
xslArg.AddParam("date", "", d.ToString())
Using w As XmlWriter = XmlWriter.Create("output.xml")
' Transform the file.
xslt.Transform("order.xml", xslArg, w)
End Using
End Sub
End Class
本示例使用以下两个数据文件作为输入。
order.xml
<!--Represents a customer order-->
<order>
<book ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<cd ISBN='2-3631-4'>
<title>Americana</title>
<price>16.95</price>
</cd>
</order>
order.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="date"/>
<xsl:template match="/">
<order>
<date><xsl:value-of select="$date"/></date>
<total><xsl:value-of select="sum(//price)"/></total>
</order>
</xsl:template>
</xsl:stylesheet>
注解
此方法使用没有用户凭据的默认值 XmlUrlResolver 解析在样式表中找到的 XSLT document()
函数的输入文档和任何实例。 如果其中任一资源位于需要身份验证的网络资源上,请使用采用 XmlResolver 其参数之一的重载并指定 XmlResolver 具有所需凭据的重载。
XmlReader使用默认设置加载输入文档。 DTD 处理在 .XmlReader 如果需要 DTD 处理,请创建启用了此功能的一个 XmlReader ,并将其传递给 Transform 该方法。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
使用 IXPathNavigable 对象指定的输入文档执行转换,然后将结果输出到 XmlWriter。 XsltArgumentList 提供附加的运行时参数,而 XmlResolver 解析 XSLT document()
函数。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
参数
- input
- IXPathNavigable
由 IXPathNavigable 对象指定的要转换的文档。
- arguments
- XsltArgumentList
XsltArgumentList 形式的参数列表。
- results
- XmlWriter
要输出到的 XmlWriter。
如果样式表包含 xsl:output
元素,则应使用由 OutputSettings 属性返回的 XmlWriterSettings 对象来创建 XmlWriter。 这样可以确保 XmlWriter 的输出设置是正确的。
- documentResolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。