XslTransform.Transform Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Transforma los datos XML mediante la hoja de estilos XSLT cargada.
Sobrecargas
Transform(XPathNavigator, XsltArgumentList, XmlResolver) |
Transforma los datos XML de XPathNavigator utilizando el |
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) |
Transforma los datos XML de XPathNavigator utilizando el |
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) |
Transforma los datos XML de XPathNavigator utilizando el |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) |
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver) |
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(XPathNavigator, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma los datos XML de XPathNavigator utilizando los argumentos especificados y envía el resultado a un XmlWriter. |
Transform(XPathNavigator, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma los datos XML de XPathNavigator utilizando el |
Transform(String, String, XmlResolver) |
Transforma los datos XML del archivo de entrada y envía el resultado a un archivo de salida. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Obsoleto.
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(IXPathNavigable, XsltArgumentList, XmlResolver) |
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Obsoleto.
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Obsoleto.
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) |
Transforma los datos XML de XPathNavigator utilizando los argumentos especificados y envía el resultado a un XmlWriter. |
Transform(XPathNavigator, XsltArgumentList) |
Obsoleto.
Transforma los datos XML de XPathNavigator utilizando el |
Transform(IXPathNavigable, XsltArgumentList) |
Obsoleto.
Transforma los datos XML de IXPathNavigable utilizando el |
Transform(String, String) |
Obsoleto.
Transforma los datos XML del archivo de entrada y envía el resultado a un archivo de salida. |
Transform(XPathNavigator, XsltArgumentList, Stream) |
Obsoleto.
Transforma los datos XML de XPathNavigator utilizando el |
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
Transform(XPathNavigator, XsltArgumentList, XmlResolver)
Transforma los datos XML de XPathNavigator utilizando el args
especificado y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(XPathNavigator, XsltArgumentList, XmlResolver).
Devoluciones
Objeto XmlReader que contiene los resultados de la transformación.
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. Es decir, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación tenga acceso a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, sigue siendo el nodo actual después de llamar al Transform método .
Dado que XmlReader proporciona una salida de solo lectura, se omite el xsl:output
elemento . Consulte Salidas de un XslTransform para obtener más información.
Este método permite realizar una transformación asincrónica del documento de origen.
Consulte también
Se aplica a
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
Transforma los datos XML de XPathNavigator utilizando el args
especificado y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- TextWriter
Objeto TextWriter al que se desea enviar el resultado.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver).
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. En otras palabras, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación acceda a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, permanece el nodo actual después de llamar al Transform método .
El atributo de codificación en un xsl:output
elemento no se admite al generar en .TextWriter Consulte Salidas de XslTransform para obtener información específica sobre xsl:output
qué atributos se admiten.
Consulte también
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementación de comportamientos discrecionales en la clase XslTransform
Se aplica a
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
Transforma los datos XML de XPathNavigator utilizando el args
especificado y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- Stream
Flujo al que se desea enviar la salida.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver).
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Ejemplos
En el ejemplo siguiente se carga una tabla de cliente en y XmlDataDocument se realiza una transformación XSLT para extraer los datos del cliente en una tabla HTML. En el ejemplo se usa la base de datos Microsoft SQL Server 2000 Northwind.
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create a DataSet and load it with customer data.
DataSet dsNorthwind = new DataSet();
String sConnect;
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
SqlConnection nwconnect = new SqlConnection(sConnect);
String sCommand = "Select * from Customers where Region='WA'";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect);
myDataAdapter.Fill(dsNorthwind,"Customers");
// Load the DataSet into an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument(dsNorthwind);
// Create the XslTransform object and load the stylesheet.
XslTransform xsl = new XslTransform();
xsl.Load("customers.xsl");
// Create an XPathNavigator to use in the transform.
XPathNavigator nav = doc.CreateNavigator();
// Create a FileStream object.
FileStream fs = new FileStream("cust.html", FileMode.Create);
// Transform the data.
xsl.Transform(nav, null, fs, null);
}
}
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
public class Sample
public shared sub Main()
' Create a DataSet and load it with customer data.
Dim dsNorthwind as DataSet = new DataSet()
Dim sConnect as String
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim nwconnect as SqlConnection
nwconnect = new SqlConnection(sConnect)
Dim sCommand as String = "Select * from Customers where Region='WA'"
Dim myDataAdapter as SqlDataAdapter
myDataAdapter = new SqlDataAdapter(sCommand, nwconnect)
myDataAdapter.Fill(dsNorthwind,"Customers")
' Load the DataSet into an XmlDataDocument.
Dim doc as XmlDataDocument = new XmlDataDocument(dsNorthwind)
' Create the XslTransform object and load the stylesheet.
Dim xsl as XslTransform = new XslTransform()
xsl.Load("customers.xsl")
' Create an XPathNavigator to use in the transform.
Dim nav as XPathNavigator = doc.CreateNavigator()
' Create a FileStream object.
Dim fs as FileStream = new FileStream("cust.html", FileMode.Create)
' Transform the data.
xsl.Transform(nav, nothing, fs, nothing)
end sub
end class
En el ejemplo se utiliza como entrada el archivo customers.xsl
.
<!-- Stylesheet to sort customers by city-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="NewDataSet">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>City</TD>
</TR>
<xsl:apply-templates select="Customers">
<xsl:sort select="City"/>
</xsl:apply-templates>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Customers">
<TR>
<TD><xsl:value-of select="CompanyName"/></TD>
<TD><xsl:value-of select="ContactName"/></TD>
<TD><xsl:value-of select="City"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. En otras palabras, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación acceda a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, permanece el nodo actual después de llamar al Transform método .
Consulte Salidas de XslTransform para obtener información específica sobre xsl:output
qué atributos se admiten.
Consulte también
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementación de comportamientos discrecionales en la clase XslTransform
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver).
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Ejemplos
En el ejemplo siguiente se transforma un documento XML en un documento HTML. Muestra el ISBN, el título y el precio de cada libro de una tabla.
#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
En el ejemplo se utilizan los dos archivos de entrada siguientes.
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>
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. El xsl:output
elemento no se admite al generar en ( XmlWriterxsl:output
se omite). Consulte Salidas de XslTransform para obtener más información.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un que XmlDocument contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- XmlSecureResolver
- Credentials
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- TextWriter
Objeto TextWriter al que se desea enviar el resultado.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver).
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Ejemplos
En el ejemplo siguiente se transforma un archivo XML y se genera una cadena HTML. Las StringReader clases y StringWriter se usan para leer y escribir las cadenas.
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
En el ejemplo se utiliza como entrada el archivo 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>
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos.
El atributo de codificación en un xsl:output
elemento no se admite al generar en .TextWriter Consulte Salidas de un XslTransform para obtener información específica sobre qué xsl:output
atributos se admiten.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un XmlDocument que contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- XmlSecureResolver
- Credentials
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- Stream
Flujo al que se desea enviar la salida.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform.
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Ejemplos
En el ejemplo siguiente se realiza una transformación dentro de una página de ASP.NET.
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Load the XML document to transform.
XPathDocument doc = new XPathDocument(Server.MapPath("books.xml"));
// Load the stylesheet and perform the transform.
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath("output.xsl"));
xslt.Transform(doc, null, Response.OutputStream, null);
}
</script>
</html>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="VB" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
' Load the XML document to transform.
dim doc as XPathDocument = new XPathDocument(Server.MapPath("books.xml"))
' Load the stylesheet and perform the transform.
dim xslt as XslTransform = new XslTransform()
xslt.Load(Server.MapPath("output.xsl"))
xslt.Transform(doc, nothing, Response.OutputStream, nothing)
end sub
</script>
</html>
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un XmlDocument que contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- XmlSecureResolver
- Credentials
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de XPathNavigator utilizando los argumentos especificados y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. Es decir, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación tenga acceso a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, sigue siendo el nodo actual después de llamar al Transform método .
El xsl:output
elemento no se admite al generar en un ( XmlWriterxsl:output
se omite). Consulte Salidas de un XslTransform para obtener más información.
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
Consulte también
Se aplica a
Transform(XPathNavigator, XsltArgumentList, TextWriter)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de XPathNavigator utilizando el args
especificado y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- TextWriter
Objeto TextWriter al que se desea enviar el resultado.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. En otras palabras, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación acceda a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, permanece el nodo actual después de llamar al Transform método .
El atributo de codificación en un xsl:output
elemento no se admite al generar en .TextWriter Consulte Salidas de XslTransform para obtener información específica sobre xsl:output
qué atributos se admiten.
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
Consulte también
Se aplica a
Transform(String, String, XmlResolver)
Transforma los datos XML del archivo de entrada y envía el resultado a un archivo de salida.
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
Dirección URL del documento origen que se va a transformar.
- outputfile
- String
Dirección URL del archivo de salida.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform.
Ejemplos
En el ejemplo siguiente se realiza una transformación XSLT y se genera en un archivo . Con XmlUrlResolver las credenciales predeterminadas se usa para resolver los recursos externos. Para obtener información detallada, vea DefaultCredentials.
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "http://myServer/data/authors.xsl", resolver );
// Transform the file.
xslt->Transform( "books.xml", "books.html", resolver );
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver);
// Transform the file.
xslt.Transform("books.xml", "books.html", resolver);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver)
' Transform the file.
xslt.Transform("books.xml", "titles.xml", resolver)
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
Consulte también
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. El xsl:output
elemento no se admite al generar en ( XmlWriterxsl:output
se omite). Consulte Salidas de XslTransform para obtener más información.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un que XmlDocument contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(IXPathNavigable, XsltArgumentList, XmlResolver).
Devoluciones
Objeto XmlReader que contiene los resultados de la transformación.
Ejemplos
En el ejemplo siguiente se transforma un documento XML y se generan los resultados en .XmlReader
Con XmlUrlResolver las credenciales necesarias se usa para procesar las funciones XSLT document()
.
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "titles.xsl" );
// Create a resolver and specify the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ myCred;
myCred = gcnew System::Net::NetworkCredential( UserName, SecurelyStoredPassword, Domain );
resolver->Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
XmlReader^ reader = xslt->Transform( doc, nullptr, resolver );
// Load the reader into a new document for more processing.
XmlDocument^ xmldoc = gcnew XmlDocument;
xmldoc->Load( reader );
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("titles.xsl");
// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument doc = new XPathDocument("books.xml");
XmlReader reader = xslt.Transform(doc, null, resolver);
// Load the reader into a new document for more processing.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("titles.xsl")
' Create a resolver and specify the necessary credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim myCred as System.Net.NetworkCredential
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain)
resolver.Credentials = myCred
' Transform thefile using the resolver. The resolver is used
' to process the XSLT document() function.
Dim doc as XPathDocument = new XPathDocument("books.xml")
Dim reader as XmlReader = xslt.Transform(doc, nothing, resolver)
' Load the reader into a new document for more processing.
Dim xmldoc as XmlDocument = new XmlDocument()
xmldoc.Load(reader)
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. El xsl:output
elemento no se admite al generar en un XmlReader elemento (se omite el xsl:output
elemento). Consulte Salidas de XslTransform para obtener más información.
Este método permite realizar una transformación asincrónica del documento de origen.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un que XmlDocument contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- XmlSecureResolver
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- TextWriter
Objeto TextWriter al que se desea enviar el resultado.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos.
El atributo de codificación en un xsl:output
elemento no se admite al generar en .TextWriter Consulte Salidas de un XslTransform para obtener información específica sobre qué xsl:output
atributos se admiten.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un que XmlDocument contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(IXPathNavigable, XsltArgumentList, Stream)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- Stream
Flujo al que se desea enviar la salida.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un XmlDocument que contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
Transforma los datos XML de XPathNavigator utilizando los argumentos especificados y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- resolver
- XmlResolver
XmlResolver que se usa para resolver la función document()
de XSLT. Si es null
, la función document()
no se resuelve.
XmlResolver no se almacena en caché una vez finalizado el método Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver).
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Ejemplos
En el ejemplo siguiente se carga y se edita un documento XML antes de realizar una transformación XSLT.
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)
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. En otras palabras, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación acceda a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, permanece el nodo actual después de llamar al Transform método .
El xsl:output
elemento no se admite al generar en ( XmlWriterxsl:output
se omite). Consulte Salidas de XslTransform para obtener más información.
Consulte también
- XsltArgumentList
- XmlSecureResolver
- Credentials
- Implementación de comportamientos discrecionales en la clase XslTransform
Se aplica a
Transform(XPathNavigator, XsltArgumentList)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de XPathNavigator utilizando el args
especificado y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
Devoluciones
Objeto XmlReader que contiene los resultados de la transformación.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. Es decir, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación tenga acceso a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, sigue siendo el nodo actual después de llamar al Transform método .
Dado que XmlReader proporciona una salida de solo lectura, se omite el xsl:output
elemento . Consulte Salidas de un XslTransform para obtener más información.
Este método permite realizar una transformación asincrónica del documento de origen.
Nota
Este método está obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función document() XSLT. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
Consulte también
Se aplica a
Transform(IXPathNavigable, XsltArgumentList)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de IXPathNavigable utilizando el args
especificado y envía el resultado a un 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
Un objeto que implementa la interfaz IXPathNavigable. En .NET Framework, puede ser un objeto XmlNode (normalmente, XmlDocument) o un objeto XPathDocument que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
Devoluciones
Objeto XmlReader que contiene los resultados de la transformación.
- Atributos
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
args
Coincide con los xsl:param
elementos definidos en la hoja de estilos. El xsl:output
elemento no se admite al generar en un elemento XmlReader (se omite el xsl:output
elemento). Consulte Salidas de un XslTransform para obtener más información.
Este método permite realizar una transformación asincrónica del documento de origen.
Las transformaciones se aplican al documento en su totalidad. En otras palabras, si se pasa un nodo distinto del nodo raíz del documento, esto no evita que el proceso de transformación pueda obtener acceso a todos los nodos del documento cargado. Para transformar un fragmento de nodo, debe crear un XmlDocument que contenga solo el fragmento de nodo y pasarlo XmlDocument al Transform método .
En el ejemplo siguiente se realiza una transformación en un fragmento de nodo.
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);
En el ejemplo se usan los library.xml
archivos y print_root.xsl
como entrada y se genera lo siguiente en la consola.
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>
Consulte también
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(String, String)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML del archivo de entrada y envía el resultado a un archivo de salida.
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
Dirección URL del documento origen que se va a transformar.
- outputfile
- String
Dirección URL del archivo de salida.
- Atributos
Ejemplos
En el ejemplo siguiente se transforma el books.xml
archivo mediante la output.xsl
hoja de estilos y se generan los resultados en el books.html
archivo.
// 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")
En el ejemplo se usan los dos archivos de entrada siguientes:
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>
Comentarios
Nota
La XslTransform clase está obsoleta en .NET Framework versión 2.0. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
Nota
Este método está obsoleto en la versión 1.1 de .NET Framework. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.
Consulte también
- Implementación de comportamientos discrecionales en la clase XslTransform
- Resultados de XslTransform
Se aplica a
Transform(XPathNavigator, XsltArgumentList, Stream)
Precaución
You should pass XmlResolver to Transform() method
Transforma los datos XML de XPathNavigator utilizando el args
especificado y envía el resultado a un 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
XPathNavigator que contiene los datos que se van a transformar.
- args
- XsltArgumentList
Objeto XsltArgumentList que contiene los argumentos calificados con el nombre de espacio de nombres utilizados como entrada para la transformación.
- output
- Stream
Flujo al que se desea enviar la salida.
- Atributos
Excepciones
Se produjo un error al procesar la transformación XSLT.
Nota: éste es un cambio de comportamiento respecto a las versiones anteriores. Se inicia una XsltException si usa Microsoft .NET Framework versión 1.1 o anterior.
Comentarios
Nota
La XslTransform clase está obsoleta en la versión 2.0 de .NET Framework. La XslCompiledTransform clase es el nuevo procesador XSLT. Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.
XslTransform admite la sintaxis XSLT 1.0. La hoja de estilos XSLT debe incluir la declaración xmlns:xsl= http://www.w3.org/1999/XSL/Transform
de espacio de nombres .
args
coincide con los xsl:param
elementos definidos en la hoja de estilos. Las selecciones de transformación se aplican al documento en su conjunto. En otras palabras, si el nodo actual está establecido en un árbol de nodos distinto del nodo raíz del documento, esto no impide que el proceso de transformación acceda a todos los nodos del documento cargado. Una vez realizada la transformación, permanece XPathNavigator en su estado original. Esto significa que el nodo, que es actual antes del proceso de transformación, permanece el nodo actual después de llamar al Transform método .
Consulte Salidas de XslTransform para obtener información específica sobre xsl:output
qué atributos se admiten.
Nota
Este método ha quedado obsoleto. El valor de la XmlResolver propiedad determina cómo se resuelve la función XSLT document()
. La práctica recomendada es usar el Transform método que toma un XmlResolver objeto como uno de sus argumentos.