XslTransform.Transform 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用加载的 XSLT 样式表转换 XML 数据。
重载
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
Transform(XPathNavigator, XsltArgumentList, XmlResolver)
使用指定的 args
转换 XPathNavigator 中的 XML 数据,并将结果输出到 XmlReader。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(XPathNavigator, XsltArgumentList, XmlResolver)。
返回
包含转换结果的 XmlReader。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,仍 XPathNavigator 保持其原始状态。 这意味着在调用方法后 Transform ,该节点在转换过程之前是当前节点。
由于 XmlReader 提供只读输出,因此 xsl:output
将忽略该元素。 有关详细信息,请参阅 XslTransform 中的输出 。
使用此方法可以执行源文档的异步转换。
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
使用指定的 args
转换 XPathNavigator 中的 XML 数据,并将结果输出到 TextWriter。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- TextWriter
要输出到的 TextWriter。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,保留 XPathNavigator 其原始状态。 这意味着在调用方法后 Transform ,节点是转换过程之前的当前节点。
在输出到元素TextWriter时,不支持元素上的xsl:output
编码属性。 有关支持哪些xsl:output
属性的详细信息,请参阅 XslTransform 的输出。
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
使用指定的 args
转换 XPathNavigator 中的 XML 数据,并将结果输出到 Stream。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- Stream
要输出到的流。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
示例
以下示例将客户表加载到某个 XmlDataDocument 表中,并执行 XSLT 转换,将客户数据拉取到 HTML 表中。 此示例使用 Microsoft SQL Server 2000 Northwind 数据库。
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create a DataSet and load it with customer data.
DataSet dsNorthwind = new DataSet();
String sConnect;
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
SqlConnection nwconnect = new SqlConnection(sConnect);
String sCommand = "Select * from Customers where Region='WA'";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect);
myDataAdapter.Fill(dsNorthwind,"Customers");
// Load the DataSet into an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument(dsNorthwind);
// Create the XslTransform object and load the stylesheet.
XslTransform xsl = new XslTransform();
xsl.Load("customers.xsl");
// Create an XPathNavigator to use in the transform.
XPathNavigator nav = doc.CreateNavigator();
// Create a FileStream object.
FileStream fs = new FileStream("cust.html", FileMode.Create);
// Transform the data.
xsl.Transform(nav, null, fs, null);
}
}
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
public class Sample
public shared sub Main()
' Create a DataSet and load it with customer data.
Dim dsNorthwind as DataSet = new DataSet()
Dim sConnect as String
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim nwconnect as SqlConnection
nwconnect = new SqlConnection(sConnect)
Dim sCommand as String = "Select * from Customers where Region='WA'"
Dim myDataAdapter as SqlDataAdapter
myDataAdapter = new SqlDataAdapter(sCommand, nwconnect)
myDataAdapter.Fill(dsNorthwind,"Customers")
' Load the DataSet into an XmlDataDocument.
Dim doc as XmlDataDocument = new XmlDataDocument(dsNorthwind)
' Create the XslTransform object and load the stylesheet.
Dim xsl as XslTransform = new XslTransform()
xsl.Load("customers.xsl")
' Create an XPathNavigator to use in the transform.
Dim nav as XPathNavigator = doc.CreateNavigator()
' Create a FileStream object.
Dim fs as FileStream = new FileStream("cust.html", FileMode.Create)
' Transform the data.
xsl.Transform(nav, nothing, fs, nothing)
end sub
end class
示例使用 customers.xsl
文件作为输入。
<!-- Stylesheet to sort customers by city-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="NewDataSet">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>City</TD>
</TR>
<xsl:apply-templates select="Customers">
<xsl:sort select="City"/>
</xsl:apply-templates>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Customers">
<TR>
<TD><xsl:value-of select="CompanyName"/></TD>
<TD><xsl:value-of select="ContactName"/></TD>
<TD><xsl:value-of select="City"/></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
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,该 XPathNavigator 转换仍处于其原始状态。 这意味着在调用方法后 Transform ,节点是转换过程之前的当前节点。
有关支持哪些xsl:output
属性的详细信息,请参阅 XslTransform 的输出。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 XmlWriter。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
示例
以下示例将 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
。
与 args
样式表中定义的元素匹配 xsl:param
。 xsl:output
在) 忽略输出到XmlWriter (xsl:output
时,不支持该元素。 有关详细信息,请参阅 XslTransform 的输出 。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须创建一个XmlDocument仅包含节点片段并将其传递给XmlDocumentTransform该方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
本示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 TextWriter。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- TextWriter
要输出到的 TextWriter。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
示例
以下示例转换 XML 文件并输出 HTML 字符串。 和StringReaderStringWriter类用于读取和写入字符串。
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample {
public static void Main() {
// Create a string containing the XSLT stylesheet.
String xsltString =
@"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='bookstore'>
<HTML>
<HEAD>
<TITLE>Book Titles</TITLE>
</HEAD>
<BODY>
<xsl:apply-templates select='book'/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='book'>
<P><xsl:value-of select='title'/></P>
</xsl:template>
</xsl:stylesheet>";
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
StringReader rdr = new StringReader(xsltString);
xslt.Load(new XPathDocument(rdr), null, null);
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform(new XPathDocument("books.xml"), null, writer, null);
HTMLoutput = writer.ToString();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
public class Sample
public shared sub Main()
' Create a string containing the XSLT stylesheet.
Dim xsltString as String
xsltString = "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>" & _
" <xsl:template match='bookstore'>" & _
" <HTML>" & _
" <HEAD>" & _
" <TITLE>Book Titles</TITLE>" & _
" </HEAD>" & _
" <BODY>" & _
" <xsl:apply-templates select='book'/>" & _
" </BODY>" & _
" </HTML>" & _
" </xsl:template>" & _
" <xsl:template match='book'>" & _
" <P><xsl:value-of select='title'/></P>" & _
" </xsl:template>" & _
" </xsl:stylesheet>"
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
Dim rdr as StringReader = new StringReader(xsltString)
xslt.Load(new XPathDocument(rdr), nothing, nothing)
' Transform the file and output an HTML string.
Dim HTMLoutput as string
Dim writer as StringWriter = new StringWriter()
xslt.Transform(new XPathDocument("books.xml"), nothing, writer, nothing)
HTMLoutput = writer.ToString()
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>
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。
输出到元素TextWriter时不支持元素上的xsl:output
编码属性。 有关支持哪些xsl:output
属性的详细信息,请参阅 XslTransform 的输出。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建包含XmlDocument节点片段并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 Stream。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- Stream
要输出到的流。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
示例
以下示例在 ASP.NET 页中执行转换。
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Load the XML document to transform.
XPathDocument doc = new XPathDocument(Server.MapPath("books.xml"));
// Load the stylesheet and perform the transform.
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath("output.xsl"));
xslt.Transform(doc, null, Response.OutputStream, null);
}
</script>
</html>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="VB" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
' Load the XML document to transform.
dim doc as XPathDocument = new XPathDocument(Server.MapPath("books.xml"))
' Load the stylesheet and perform the transform.
dim xslt as XslTransform = new XslTransform()
xslt.Load(Server.MapPath("output.xsl"))
xslt.Transform(doc, nothing, Response.OutputStream, nothing)
end sub
</script>
</html>
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建包含XmlDocument节点片段并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList, XmlWriter)
注意
You should pass XmlResolver to Transform() method
使用指定的参数转换 XPathNavigator 中的 XML 数据,并将结果输出到 XmlWriter。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter)
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,该 XPathNavigator 转换将保持其原始状态。 这意味着在转换过程之前为当前节点的节点在调用方法后 Transform 仍为当前节点。
xsl:output
) 忽略输出到XmlWriter (xsl:output
时,不支持该元素。 有关详细信息,请参阅 XslTransform 中的输出 。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList, TextWriter)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 XPathNavigator 中的 XML 数据,并将结果输出到 TextWriter。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter)
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- TextWriter
要输出到的 TextWriter。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,该 XPathNavigator 转换将保持其原始状态。 这意味着在调用方法后 Transform ,该节点在转换过程之前是当前节点。
输出到元素TextWriter时不支持元素上的xsl:output
编码属性。 有关支持哪些xsl:output
属性的详细信息,请参阅 XslTransform 的输出。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
另请参阅
适用于
Transform(String, String, XmlResolver)
转换输入文件中的 XML 数据并将结果输出到输出文件。
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile, System::Xml::XmlResolver ^ resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver? resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver resolver);
member this.Transform : string * string * System.Xml.XmlResolver -> unit
Public Sub Transform (inputfile As String, outputfile As String, resolver As XmlResolver)
参数
- inputfile
- String
要转换的源文档的 URL。
- outputfile
- String
输出文件的 URL。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform。
示例
以下示例执行 XSLT 转换并输出到文件。 XmlUrlResolver使用具有默认凭据的凭据解析外部资源。 有关详细信息,请参阅DefaultCredentials。
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "http://myServer/data/authors.xsl", resolver );
// Transform the file.
xslt->Transform( "books.xml", "books.html", resolver );
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver);
// Transform the file.
xslt.Transform("books.xml", "books.html", resolver);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver)
' Transform the file.
xslt.Transform("books.xml", "titles.xml", resolver)
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 XmlWriter。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
与 args
样式表中定义的元素匹配 xsl:param
。 xsl:output
) 忽略输出到XmlWriter (xsl:output
时,不支持该元素。 有关详细信息,请参阅 XslTransform 中的输出 。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建包含XmlDocument节点片段并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 XmlReader。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(IXPathNavigable, XsltArgumentList, XmlResolver)。
返回
包含转换结果的 XmlReader。
示例
以下示例转换 XML 文档并将结果输出到一个 XmlReader
。 具有所需凭据的凭据 XmlUrlResolver 用于处理任何 XSLT document()
函数。
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "titles.xsl" );
// Create a resolver and specify the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ myCred;
myCred = gcnew System::Net::NetworkCredential( UserName, SecurelyStoredPassword, Domain );
resolver->Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
XmlReader^ reader = xslt->Transform( doc, nullptr, resolver );
// Load the reader into a new document for more processing.
XmlDocument^ xmldoc = gcnew XmlDocument;
xmldoc->Load( reader );
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("titles.xsl");
// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument doc = new XPathDocument("books.xml");
XmlReader reader = xslt.Transform(doc, null, resolver);
// Load the reader into a new document for more processing.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("titles.xsl")
' Create a resolver and specify the necessary credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim myCred as System.Net.NetworkCredential
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain)
resolver.Credentials = myCred
' Transform thefile using the resolver. The resolver is used
' to process the XSLT document() function.
Dim doc as XPathDocument = new XPathDocument("books.xml")
Dim reader as XmlReader = xslt.Transform(doc, nothing, resolver)
' Load the reader into a new document for more processing.
Dim xmldoc as XmlDocument = new XmlDocument()
xmldoc.Load(reader)
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 xsl:output
当输出到XmlReader (元素被忽略) xsl:output
时,不支持该元素。 有关详细信息,请参阅 XslTransform 中的输出 。
使用此方法可以执行源文档的异步转换。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建一个XmlDocument包含节点片段,并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 TextWriter。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- TextWriter
要输出到的 TextWriter。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
与 args
样式表中定义的元素匹配 xsl:param
。
输出到元素TextWriter时不支持元素上的xsl:output
编码属性。 有关支持哪些xsl:output
属性的详细信息,请参阅 XslTransform 的输出。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建一个XmlDocument包含节点片段,并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList, Stream)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 Stream。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream)
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- Stream
要输出到的流。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
与 args
样式表中定义的元素匹配 xsl:param
。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建包含XmlDocument节点片段并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
使用指定的参数转换 XPathNavigator 中的 XML 数据,并将结果输出到 XmlWriter。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- resolver
- XmlResolver
用于解析 XSLT document()
函数的 XmlResolver。 如果为 null
,则不解析 document()
函数。
完成 XmlResolver 方法后不缓存 Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)。
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
示例
以下示例在执行 XSLT 转换之前加载和编辑 XML 文档。
XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "books.xml" );
// Modify the XML file.
XmlElement^ root = doc->DocumentElement;
root->FirstChild->LastChild->InnerText = "12.95";
// Create an XPathNavigator to use for the transform.
XPathNavigator^ nav = root->CreateNavigator();
// Transform the file.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( "output.xsl" );
XmlTextWriter^ writer = gcnew XmlTextWriter( "books.html", nullptr );
xslt->Transform( nav, nullptr, writer, nullptr);
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
// Modify the XML file.
XmlElement root = doc.DocumentElement;
root.FirstChild.LastChild.InnerText = "12.95";
// Create an XPathNavigator to use for the transform.
XPathNavigator nav = root.CreateNavigator();
// Transform the file.
XslTransform xslt = new XslTransform();
xslt.Load("output.xsl");
XmlTextWriter writer = new XmlTextWriter("books.html", null);
xslt.Transform(nav, null, writer, null);
Dim doc as XmlDocument = new XmlDocument()
doc.Load("books.xml")
' Modify the XML file.
Dim root as XmlElement = doc.DocumentElement
root.FirstChild.LastChild.InnerText = "12.95"
' Create an XPathNavigator to use for the transform.
Dim nav as XPathNavigator = root.CreateNavigator()
' Transform the file.
Dim xslt as XslTransform = new XslTransform()
xslt.Load("output.xsl")
Dim writer as XmlTextWriter = new XmlTextWriter("books.html", nothing)
xslt.Transform(nav,nothing, writer, nothing)
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,保留 XPathNavigator 其原始状态。 这意味着在调用方法后 Transform ,节点(在转换过程之前是当前节点)。
xsl:output
在) 忽略输出到XmlWriter (xsl:output
时,不支持该元素。 有关详细信息,请参阅 XslTransform 的输出 。
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 XPathNavigator 中的 XML 数据,并将结果输出到 XmlReader。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList) As XmlReader
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
返回
包含转换结果的 XmlReader。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,仍 XPathNavigator 保持其原始状态。 这意味着在调用方法后 Transform ,该节点在转换过程之前是当前节点。
由于 XmlReader 提供只读输出,因此 xsl:output
将忽略该元素。 有关详细信息,请参阅 XslTransform 中的输出 。
使用此方法可以执行源文档的异步转换。
备注
此方法已过时。 属性的设置 XmlResolver 确定如何解析 XSLT 文档 () 函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
另请参阅
适用于
Transform(IXPathNavigable, XsltArgumentList)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 IXPathNavigable 中的 XML 数据,并将结果输出到 XmlReader。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList) As XmlReader
参数
- input
- IXPathNavigable
一个实现 IXPathNavigable 接口的对象。 在 .NET Framework 中,这可以是 XmlNode(一般为 XmlDocument),或者是包含要转换的数据的 XPathDocument。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
返回
包含转换结果的 XmlReader。
- 属性
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。
与 args
样式表中定义的元素匹配 xsl:param
。 xsl:output
当输出到XmlReader (元素被忽略) xsl:output
时,不支持该元素。 有关详细信息,请参阅 XslTransform 中的输出 。
使用此方法可以执行源文档的异步转换。
转换将应用于整个文档。 换句话说,如果你传入文档根节点以外的一个节点,并不能防止转换进程访问已加载文档的所有节点。 若要转换节点片段,必须只创建包含XmlDocument节点片段并将其传递给XmlDocumentTransform方法。
以下示例对节点片段执行转换。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
该示例使用 library.xml
和 print_root.xsl
文件作为输入和输出,并将以下内容输出到控制台。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
另请参阅
适用于
Transform(String, String)
注意
You should pass XmlResolver to Transform() method
转换输入文件中的 XML 数据并将结果输出到输出文件。
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile);
public void Transform (string inputfile, string outputfile);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (string inputfile, string outputfile);
member this.Transform : string * string -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : string * string -> unit
Public Sub Transform (inputfile As String, outputfile As String)
参数
- inputfile
- String
要转换的源文档的 URL。
- outputfile
- String
输出文件的 URL。
- 属性
示例
以下示例使用output.xsl
样式表转换books.xml
文件,并将结果输出到books.html
文件。
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "output.xsl" );
// Transform the file.
xslt->Transform("books.xml","books.html");
//Create the XslTransform object.
XslTransform xslt = new XslTransform();
//Load the stylesheet.
xslt.Load("output.xsl");
//Transform the file.
xslt.Transform("books.xml", "books.html");
'Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
'Load the stylesheet.
xslt.Load("output.xsl")
'Transform the 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>
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 该 XslCompiledTransform 类是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
备注
此方法在.NET Framework版本 1.1 中已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象 XmlResolver 作为其参数之一的方法。
另请参阅
适用于
Transform(XPathNavigator, XsltArgumentList, Stream)
注意
You should pass XmlResolver to Transform() method
使用指定的 args
转换 XPathNavigator 中的 XML 数据,并将结果输出到 Stream。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream)
参数
- input
- XPathNavigator
XPathNavigator,包含要转换的数据。
- args
- XsltArgumentList
XsltArgumentList,包含用作转换输入的命名空间限定的参数。
- output
- Stream
要输出到的流。
- 属性
例外
处理 XSLT 转换时出错。
注意:这是对早期版本行为的更改。 如果使用的是 Microsoft .NET Framework 1.1 版或更早版本,则会引发 XsltException。
注解
备注
该XslTransform类在 .NET Framework 版本 2.0 中已过时。 类 XslCompiledTransform 是新的 XSLT 处理器。 有关详细信息,请参阅 使用 XslCompiledTransform 类 并从 XslTransform 类迁移。
XslTransform 支持 XSLT 1.0 语法。 XSLT 样式表必须包含命名空间声明 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
。
与 args
样式表中定义的元素匹配 xsl:param
。 转换选择应用于整个文档。 换句话说,如果当前节点在文档根节点以外的节点树上设置,这不会阻止转换过程访问加载的文档中的所有节点。 执行转换后,仍 XPathNavigator 保持其原始状态。 这意味着在调用方法后 Transform ,该节点在转换过程之前是当前节点。
有关支持哪些xsl:output
属性的详细信息,请参阅 XslTransform 的输出。
备注
此方法现已过时。 属性的设置 XmlResolver 确定如何解析 XSLT document()
函数。 建议的做法是使用 Transform 采用对象作为其参数之一的方法 XmlResolver 。