XslTransform.Transform Método
Definição
Transforma os dados XML usando a folha de estilos XSLT carregada.Transforms the XML data using the loaded XSLT style sheet.
Sobrecargas
Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Transforma os dados XML no XPathNavigator usando o |
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Transforma os dados XML no XPathNavigator usando o |
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Transforma os dados XML no XPathNavigator usando o |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Transforma os dados XML no IXPathNavigable usando o |
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Transforma os dados XML no IXPathNavigable usando o |
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Transforma os dados XML no IXPathNavigable usando o |
Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma os dados XML no XPathNavigator usando o args especificado e gera o resultado para um XmlWriter.Transforms the XML data in the XPathNavigator using the specified args and outputs the result to an XmlWriter. |
Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma os dados XML no XPathNavigator usando o |
Transform(String, String, XmlResolver) |
Transforma os dados XML no arquivo de entrada e gera o resultado para um arquivo de saída.Transforms the XML data in the input file and outputs the result to an output file. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma os dados XML no IXPathNavigable usando o |
Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Transforma os dados XML no IXPathNavigable usando o |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma os dados XML no IXPathNavigable usando o |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsoleto.
Transforma os dados XML no IXPathNavigable usando o |
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Transforma os dados XML no XPathNavigator usando o args especificado e gera o resultado para um XmlWriter.Transforms the XML data in the XPathNavigator using the specified args and outputs the result to an XmlWriter. |
Transform(XPathNavigator, XsltArgumentList) |
Obsoleto.
Transforma os dados XML no XPathNavigator usando o |
Transform(IXPathNavigable, XsltArgumentList) |
Obsoleto.
Transforma os dados XML no IXPathNavigable usando o |
Transform(String, String) |
Obsoleto.
Transforma os dados XML no arquivo de entrada e gera o resultado para um arquivo de saída.Transforms the XML data in the input file and outputs the result to an output file. |
Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsoleto.
Transforma os dados XML no XPathNavigator usando o |
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Transforma os dados XML no XPathNavigator usando o args
especificado e gera o resultado para um XmlReader.Transforms the XML data in the XPathNavigator using the specified args
and outputs the result to an 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
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(XPathNavigator, XsltArgumentList, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(XPathNavigator, XsltArgumentList, XmlResolver) method completes.
Retornos
Um XmlReader que contém os resultados da transformação.An XmlReader containing the results of the transformation.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação for executada, o XPathNavigator permanecerá em seu estado original.After the transformation has been performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, which is current before the transformation process, remains the current node after the Transform method has been called.
Como XmlReader o fornece a saída somente leitura, o xsl:output
elemento é ignorado.Because XmlReader provides read-only output, the xsl:output
element is ignored. Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
Esse método permite que você faça uma transformação assíncrona do documento de origem.This method enables you to do an asynchronous transformation of the source document.
Confira também
- XmlSecureResolver
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
Aplica-se a
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Transforma os dados XML no XPathNavigator usando o args
especificado e gera o resultado para um TextWriter.Transforms the XML data in the XPathNavigator using the specified args
and outputs the result to a 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)
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- TextWriter
O TextWriter para o qual deseja gerar.The TextWriter to which you want to output.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) method completes.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação é executada, o XPathNavigator permanece em seu estado original.After the transformation is performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, which is current before the transformation process, remains the current node after the Transform method has been called.
Não há suporte para o atributo encoding em um xsl:output
elemento durante a saída para um TextWriter .The encoding attribute on an xsl:output
element is not supported when outputting to a TextWriter. Consulte saídas de um XslTransform para obter informações específicas sobre quais xsl:output
atributos têm suporte.See Outputs from an XslTransform for specifics on which xsl:output
attributes are supported.
Confira também
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
Aplica-se a
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Transforma os dados XML no XPathNavigator usando o args
especificado e gera o resultado para um Stream.Transforms the XML data in the XPathNavigator using the specified args
and outputs the result to a 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)
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- Stream
O fluxo no qual você deseja gerar saída.The stream to which you want to output.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) method completes.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Exemplos
O exemplo a seguir carrega uma tabela Customer em um XmlDataDocument e executa uma transformação XSLT para efetuar pull dos dados do cliente em uma tabela HTML.The following example loads a customer table into an XmlDataDocument and performs an XSLT transformation to pull the customer data into an HTML table. O exemplo usa o banco de dados Microsoft SQL Server Northwind 2000.The example uses the Microsoft SQL Server 2000 Northwind database.
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
O exemplo usa o arquivo customers.xsl
como entrada.The example uses the customers.xsl
file as input.
<!-- 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>
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação for executada, o XPathNavigator permanecerá em seu estado original.After the transformation has been performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, which is current before the transformation process, remains the current node after the Transform method has been called.
Consulte saídas de um XslTransform para obter informações específicas sobre quais xsl:output
atributos têm suporte.See Outputs from an XslTransform for specifics on which xsl:output
attributes are supported.
Confira também
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um XmlWriter.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to an 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)
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) method completes.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Exemplos
O exemplo a seguir transforma um documento XML em um documento HTML.The following example transforms an XML document into an HTML document. Ele exibe o ISBN, o título e o preço de cada livro em uma tabela.It displays the ISBN, title, and price for each book in a table.
#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
O exemplo usa os dois arquivos de entrada a seguir.The sample uses the following two input files.
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>
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. xsl:output
Não há suporte para o elemento durante a saída para um XmlWriter ( xsl:output
ignorado).The xsl:output
element is not supported when outputting to an XmlWriter (xsl:output
is ignored). Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Confira também
- XmlSecureResolver
- Credentials
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
- Saída de um XslTransformOutputs from an XslTransform
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um TextWriter.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to a 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)
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- TextWriter
O TextWriter para o qual deseja gerar.The TextWriter to which you want to output.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) method completes.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Exemplos
O exemplo a seguir transforma um arquivo XML e gera uma cadeia de caracteres HTML.The following example transforms an XML file and outputs an HTML string. As StringReader StringWriter classes e são usadas para ler e gravar as cadeias de caracteres.The StringReader and StringWriter classes are used to read and write the strings.
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
O exemplo usa o arquivo books.xml
como entrada.The example uses the books.xml
file as input.
<?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>
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet.
Não há suporte para o atributo encoding em um xsl:output
elemento durante a saída para um TextWriter .The encoding attribute on an xsl:output
element is not supported when outputting to a TextWriter. Consulte saídas de um XslTransform para obter informações específicas sobre quais xsl:output
atributos têm suporte.See Outputs from an XslTransform for specifics on which xsl:output
attributes are supported.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Confira também
- XmlSecureResolver
- Credentials
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
- Saída de um XslTransformOutputs from an XslTransform
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um Stream.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to a 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)
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- Stream
O fluxo no qual você deseja gerar saída.The stream to which you want to output.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform ser concluído.The XmlResolver is not cached after the Transform method completes.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Exemplos
O exemplo a seguir executa uma transformação dentro de uma página ASP.NET.The following example performs a transformation within an ASP.NET page.
<%@ 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>
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Confira também
- XmlSecureResolver
- Credentials
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
- Saída de um XslTransformOutputs from an XslTransform
Aplica-se a
Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no XPathNavigator usando o args especificado e gera o resultado para um XmlWriter.Transforms the XML data in the XPathNavigator using the specified args and outputs the result to an 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)
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação é executada, o XPathNavigator permanece em seu estado original.After the transformation is performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, that is current before the transformation process, remains the current node after the Transform method has been called.
xsl:output
Não há suporte para o elemento durante a saída para um XmlWriter ( xsl:output
ignorado).The xsl:output
element is not supported when outputting to an XmlWriter (xsl:output
is ignored). Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
Confira também
- XsltArgumentList
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
Aplica-se a
Transform(XPathNavigator, XsltArgumentList, TextWriter)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no XPathNavigator usando o args
especificado e gera o resultado para um TextWriter.Transforms the XML data in the XPathNavigator using the specified args
and outputs the result to a 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)
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- TextWriter
O TextWriter para o qual deseja gerar.The TextWriter to which you want to output.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação é executada, o XPathNavigator permanece em seu estado original.After the transformation is performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, which is current before the transformation process, remains the current node after the Transform method has been called.
Não há suporte para o atributo encoding em um xsl:output
elemento durante a saída para um TextWriter .The encoding attribute on an xsl:output
element is not supported when outputting to a TextWriter. Consulte saídas de um XslTransform para obter informações específicas sobre quais xsl:output
atributos têm suporte.See Outputs from an XslTransform for specifics on which xsl:output
attributes are supported.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
Confira também
- XsltArgumentList
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
Aplica-se a
Transform(String, String, XmlResolver)
Transforma os dados XML no arquivo de entrada e gera o resultado para um arquivo de saída.Transforms the XML data in the input file and outputs the result to an output file.
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)
Parâmetros
- inputfile
- String
A URL do documento de origem a ser transformado.The URL of the source document to be transformed.
- outputfile
- String
O URL do arquivo de saída.The URL of the output file.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform ser concluído.The XmlResolver is not cached after the Transform method completes.
Exemplos
O exemplo a seguir executa uma transformação XSLT e saídas em um arquivo.The following example performs an XSLT transformation and outputs to a file. Um XmlUrlResolver com credenciais padrão é usado para resolver recursos externos.An XmlUrlResolver with default credentials is used resolve an external resources. Para obter detalhes, consulte DefaultCredentials.See DefaultCredentials for details.
// 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)
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
Confira também
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um XmlWriter.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to an 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)
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. xsl:output
Não há suporte para o elemento durante a saída para um XmlWriter ( xsl:output
ignorado).The xsl:output
element is not supported when outputting to an XmlWriter (xsl:output
is ignored). Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um XmlReader.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to an 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
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(IXPathNavigable, XsltArgumentList, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(IXPathNavigable, XsltArgumentList, XmlResolver) method completes.
Retornos
Um XmlReader que contém os resultados da transformação.An XmlReader containing the results of the transformation.
Exemplos
O exemplo a seguir transforma um documento XML e gera os resultados para um XmlReader
.The following example transforms an XML document and outputs the results to an XmlReader
. Um XmlUrlResolver com as credenciais necessárias é usado para processar qualquer document()
função XSLT.An XmlUrlResolver with the necessary credentials is used to process any XSLT document()
functions.
// 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)
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. xsl:output
Não há suporte para o elemento durante a saída para um XmlReader (o xsl:output
elemento é ignorado).The xsl:output
element is not supported when outputting to an XmlReader (the xsl:output
element is ignored). Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
Esse método permite que você faça uma transformação assíncrona do documento de origem.This method enables you to do an asynchronous transformation of the source document.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment, and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Confira também
- XmlSecureResolver
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
- Saída de um XslTransformOutputs from an XslTransform
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um TextWriter.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to a 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)
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- TextWriter
O TextWriter para o qual deseja gerar.The TextWriter to which you want to output.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet.
Não há suporte para o atributo encoding em um xsl:output
elemento durante a saída para um TextWriter .The encoding attribute on an xsl:output
element is not supported when outputting to a TextWriter. Consulte saídas de um XslTransform para obter informações específicas sobre quais xsl:output
atributos têm suporte.See Outputs from an XslTransform for specifics on which xsl:output
attributes are supported.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment, and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList, Stream)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um Stream.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to a 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)
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- Stream
O fluxo no qual você deseja gerar saída.The stream to which you want to output.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Aplica-se a
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Transforma os dados XML no XPathNavigator usando o args especificado e gera o resultado para um XmlWriter.Transforms the XML data in the XPathNavigator using the specified args and outputs the result to an 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)
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- resolver
- XmlResolver
O XmlResolver usado para resolver a função XSLT document()
.The XmlResolver used to resolve the XSLT document()
function. Se isso for null
, a função document()
não será resolvida.If this is null
, the document()
function is not resolved.
O XmlResolver não é armazenado em cache após o método Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) ser concluído.The XmlResolver is not cached after the Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) method completes.
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Exemplos
O exemplo a seguir carrega e edita um documento XML antes de executar uma transformação XSLT.The following example loads and edits an XML document before performing an XSLT transform.
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)
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação é executada, o XPathNavigator permanece em seu estado original.After the transformation is performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, that is current before the transformation process, remains the current node after the Transform method has been called.
xsl:output
Não há suporte para o elemento durante a saída para um XmlWriter ( xsl:output
ignorado).The xsl:output
element is not supported when outputting to an XmlWriter (xsl:output
is ignored). Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
Confira também
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class
Aplica-se a
Transform(XPathNavigator, XsltArgumentList)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no XPathNavigator usando o args
especificado e gera o resultado para um XmlReader.Transforms the XML data in the XPathNavigator using the specified args
and outputs the result to an 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
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
Retornos
Um XmlReader que contém os resultados da transformação.An XmlReader containing the results of the transformation.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação for executada, o XPathNavigator permanecerá em seu estado original.After the transformation has been performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, which is current before the transformation process, remains the current node after the Transform method has been called.
Como XmlReader o fornece a saída somente leitura, o xsl:output
elemento é ignorado.Because XmlReader provides read-only output, the xsl:output
element is ignored. Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
Esse método permite que você faça uma transformação assíncrona do documento de origem.This method enables you to do an asynchronous transformation of the source document.
Observação
Esse método é obsoleto.This method is obsolete. A configuração da XmlResolver propriedade determina como a função de documento XSLT () é resolvida.The setting of the XmlResolver property determines how the XSLT document() function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
Aplica-se a
Transform(IXPathNavigable, XsltArgumentList)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no IXPathNavigable usando o args
especificado e gera o resultado para um XmlReader.Transforms the XML data in the IXPathNavigable using the specified args
and outputs the result to an 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
Parâmetros
- input
- IXPathNavigable
Um objeto que implementa a interface IXPathNavigable.An object implementing the IXPathNavigable interface. No .NET Framework, isso pode ser um XmlNode (normalmente um XmlDocument) ou um XPathDocument que contém os dados a serem transformados.In the .NET Framework, this can be either an XmlNode (typically an XmlDocument), or an XPathDocument containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
Retornos
Um XmlReader que contém os resultados da transformação.An XmlReader containing the results of the transformation.
- Atributos
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. xsl:output
Não há suporte para o elemento durante a saída para um XmlReader (o xsl:output
elemento é ignorado).The xsl:output
element is not supported when outputting to an XmlReader (the xsl:output
element is ignored). Consulte saídas de um XslTransform para obter mais informações.See Outputs from an XslTransform for more information.
Esse método permite que você faça uma transformação assíncrona do documento de origem.This method enables you to do an asynchronous transformation of the source document.
As transformações são aplicadas ao documento no dataset.Transformations apply to the document as a whole. Ou seja se você passar em um nó que não seja o nó de diretório base, isso não impede que o processo de transformação acessar todos os nós do documento carregado.In other words, if you pass in a node other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Para transformar um fragmento de nó, você deve criar um XmlDocument contendo apenas o fragmento de nó e passá-lo XmlDocument para o Transform método.To transform a node fragment, you must create an XmlDocument containing just the node fragment and pass that XmlDocument to the Transform method.
O exemplo a seguir executa uma transformação em um fragmento de nó.The following example performs a transformation on a node fragment.
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);
O exemplo usa os library.xml
print_root.xsl
arquivos e como entrada e gera o seguinte para o console.The example uses the library.xml
and print_root.xsl
files as input and outputs the following to the console.
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>
Aplica-se a
Transform(String, String)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no arquivo de entrada e gera o resultado para um arquivo de saída.Transforms the XML data in the input file and outputs the result to an output file.
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)
Parâmetros
- inputfile
- String
A URL do documento de origem a ser transformado.The URL of the source document to be transformed.
- outputfile
- String
O URL do arquivo de saída.The URL of the output file.
- Atributos
Exemplos
O exemplo a seguir transforma o books.xml
arquivo usando a output.xsl
folha de estilos e gera os resultados para o books.html
arquivo.The following example transforms the books.xml
file using the output.xsl
style sheet and outputs the results to the books.html
file.
// 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")
O exemplo usa os dois arquivos de entrada a seguir:The sample uses the following two input files:
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>
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
Observação
Esse método é obsoleto na versão 1,1 do .NET Framework.This method is obsolete in version 1.1 of the .NET Framework. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
Aplica-se a
Transform(XPathNavigator, XsltArgumentList, Stream)
Cuidado
You should pass XmlResolver to Transform() method
Transforma os dados XML no XPathNavigator usando o args
especificado e gera o resultado para um Stream.Transforms the XML data in the XPathNavigator using the specified args
and outputs the result to a 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)
Parâmetros
- input
- XPathNavigator
Um XPathNavigator que contém os dados a serem transformados.An XPathNavigator containing the data to be transformed.
- args
- XsltArgumentList
Um XsltArgumentList que contém os argumentos qualificados por namespace usados como a entrada para a transformação.An XsltArgumentList containing the namespace-qualified arguments used as input to the transformation.
- output
- Stream
O fluxo no qual você deseja gerar saída.The stream to which you want to output.
- Atributos
Exceções
Ocorreu um erro ao processar a transformação XSLT.There was an error processing the XSLT transformation.
Observação: esta é uma alteração do comportamento de versões anteriores.Note: This is a change in behavior from earlier versions. Um XsltException será gerado se você estiver usando o Microsoft .NET Framework versão 1.1 ou anterior.An XsltException is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
Comentários
Observação
A XslTransform classe está obsoleta no .NET Framework versão 2,0.The XslTransform class is obsolete in the .NET Framework version 2.0. A XslCompiledTransform classe é o novo processador XSLT.The XslCompiledTransform class is the new XSLT processor. Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.
XslTransform dá suporte à sintaxe XSLT 1,0.XslTransform supports the XSLT 1.0 syntax. A folha de estilos XSLT deve incluir a declaração de namespace xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.The XSLT style sheet must include the namespace declaration xmlns:xsl= http://www.w3.org/1999/XSL/Transform
.
O args
é correspondido com os xsl:param
elementos definidos na folha de estilos.The args
are matched with the xsl:param
elements defined in the style sheet. As seleções de transformação se aplicam ao documento como um todo.The transformation selections apply to the document as a whole. Em outras palavras, se o nó atual estiver definido em uma árvore de nós que não seja o nó raiz do documento, isso não impedirá que o processo de transformação acesse todos os nós no documento carregado.In other words, if the current node is set on a node tree other than the document root node, this does not prevent the transformation process from accessing all nodes in the loaded document. Depois que a transformação for executada, o XPathNavigator permanecerá em seu estado original.After the transformation has been performed, the XPathNavigator remains in its original state. Isso significa que o nó, que é atual antes do processo de transformação, permanece o nó atual depois que o Transform método é chamado.This means that the node, which is current before the transformation process, remains the current node after the Transform method has been called.
Consulte saídas de um XslTransform para obter informações específicas sobre quais xsl:output
atributos têm suporte.See Outputs from an XslTransform for specifics on which xsl:output
attributes are supported.
Observação
Este método agora está obsoleto.This method is now obsolete. A configuração da XmlResolver propriedade determina como a função XSLT document()
é resolvida.The setting of the XmlResolver property determines how the XSLT document()
function is resolved. A prática recomendada é usar o Transform método que usa um XmlResolver objeto como um de seus argumentos.The recommended practice is to use the Transform method which takes an XmlResolver object as one of its arguments.
Confira também
- XsltArgumentList
- Implementação de comportamentos arbitrários na classe XslTransformImplementation of Discretionary Behaviors in the XslTransform Class