Compartir a través de


XslTransform.Transform Método

Definición

Transforma los datos XML mediante la hoja de estilos XSLT cargada.

Sobrecargas

Transform(XPathNavigator, XsltArgumentList, XmlResolver)

Transforma los datos XML de XPathNavigator utilizando el args especificado y envía el resultado a un XmlReader.

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)

Transforma los datos XML de XPathNavigator utilizando el args especificado y envía el resultado a un TextWriter.

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)

Transforma los datos XML de XPathNavigator utilizando el args especificado y envía el resultado a un Stream.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un TextWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un Stream.

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 args especificado y envía el resultado a un TextWriter.

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 args especificado y envía el resultado a un XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un XmlReader.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Obsoleto.

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un TextWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream)
Obsoleto.

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un Stream.

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 args especificado y envía el resultado a un XmlReader.

Transform(IXPathNavigable, XsltArgumentList)
Obsoleto.

Transforma los datos XML de IXPathNavigable utilizando el args especificado y envía el resultado a un XmlReader.

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 args especificado y envía el resultado a un Stream.

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

XmlReader

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/Transformde 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/Transformde 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

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/Transformde 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

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.

output
XmlWriter

Objeto XmlWriter 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, 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/Transformde 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

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/Transformde 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

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/Transformde 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

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.

output
XmlWriter

Objeto XmlWriter 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/Transformde 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/Transformde 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/Transformde 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.

output
XmlWriter

Objeto XmlWriter 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/Transformde 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

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

XmlReader

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/Transformde 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

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/Transformde 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

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/Transformde 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

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.

output
XmlWriter

Objeto XmlWriter 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, 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/Transformde 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

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

XmlReader

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/Transformde 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

XmlReader

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/Transformde 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

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/Transformde 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

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/Transformde 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.

Consulte también

Se aplica a