XslCompiledTransform.Transform Método

Definición

Ejecuta la transformación XSLT.

Sobrecargas

Transform(XmlReader, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto XmlReader y guarda el resultado en TextWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en un objeto XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en un objeto TextWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(IXPathNavigable, XsltArgumentList, Stream)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto IXPathNavigable y guarda el resultado en una secuencia. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(XmlReader, XsltArgumentList, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto XmlReader y guarda el resultado en un objeto XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(XmlReader, XsltArgumentList, Stream)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto XmlReader y guarda el resultado en una secuencia. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(String, String)

Ejecuta la transformación usando el documento de entrada especificado por el URI y envía el resultado a un archivo.

Transform(String, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en una clase TextWriter.

Transform(String, XsltArgumentList, Stream)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en un flujo. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(IXPathNavigable, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en un objeto XmlWriter.

Transform(XmlReader, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto XmlReader y guarda el resultado en un objeto XmlWriter.

Transform(String, XmlWriter)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en una clase XmlWriter.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Ejecuta la transformación usando el documento de entrada especificado por el objeto XmlReader y guarda el resultado en un objeto XmlWriter. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales y XmlResolver resuelve la función XSLTdocument().

Transform(String, XsltArgumentList, XmlWriter)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en una clase XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en XmlWriter. El XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución y XmlResolver resuelve la función document() XSLT.

Comentarios

Nota:

Existen diferencias entre una transformación XSL compilada en modo de depuración y otra compilada en modo de lanzamiento. En algunas situaciones, las hojas de estilos compiladas en modo de depuración no producirán errores durante la Load, pero sí lo harán posteriormente durante la Transform. La misma hoja de estilos compilada en modo de lanzamiento producirá errores durante la Load. Un ejemplo de este comportamiento se produce cuando una variable que no es de un tipo de conjunto de nodos se asigna a una expresión que requiere un conjunto de nodos.

Transform(XmlReader, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto XmlReader y guarda el resultado en TextWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As TextWriter)

Parámetros

input
XmlReader

XmlReader que contiene el documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
TextWriter

Objeto TextWriter al que se desea enviar el resultado.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Comentarios

Si la hoja de estilos incluye una función XSLT document() , se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Consulte también

Se aplica a

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en un objeto XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter)

Parámetros

input
IXPathNavigable

Un objeto que implementa la interfaz IXPathNavigable. En Microsoft .NET Framework, puede ser una clase XmlNode (normalmente XmlDocument) o una clase XPathDocument que contiene los datos que se van a transformar.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto por la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Comentarios

Si la función XSLT document() está habilitada, se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Este método no admite el xsl:strip-space elemento . Si la hoja de estilos compilada incluía el xsl:strip-space elemento , debe usar la Transform sobrecarga que toma como XmlReader argumento de entrada.

La interfaz IXPathNavigable se implementa en la clase XmlNode y XPathDocument. Estas clases representan una caché en memoria de datos XML.

  • La clase XmlNode se basa en el Modelo de objetos de documento (DOM) del W3C e incluye capacidades de edición.

  • La clase XPathDocument es un almacén de datos de solo lectura basado en el modelo de datos XPath. XPathDocument es la clase recomendada para el procesamiento XSLT. Proporciona un rendimiento mayor comparada con la clase XmlNode.

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 del nodo, debe crear un objeto que contenga solo el fragmento del nodo y pasar ese objeto al método Transform. Para obtener más información, vea Cómo: Transformación de un fragmento de nodo.

Consulte también

Se aplica a

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en un objeto TextWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As TextWriter)

Parámetros

input
IXPathNavigable

Un objeto que implementa la interfaz IXPathNavigable. En Microsoft .NET Framework, puede ser una clase XmlNode (normalmente XmlDocument) o una clase XPathDocument que contiene los datos que se van a transformar.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
TextWriter

Objeto TextWriter al que se desea enviar el resultado.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Comentarios

Si la función XSLT document() está habilitada, se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Este método no admite el xsl:strip-space elemento . Si la hoja de estilos compilada incluía el xsl:strip-space elemento , debe usar la Transform sobrecarga que toma como XmlReader argumento de entrada.

La interfaz IXPathNavigable se implementa en la clase XmlNode y XPathDocument. Estas clases representan una caché en memoria de datos XML.

  • La clase XmlNode se basa en el Modelo de objetos de documento (DOM) del W3C e incluye capacidades de edición.

  • La clase XPathDocument es un almacén de datos de solo lectura basado en el modelo de datos XPath. XPathDocument es la clase recomendada para el procesamiento XSLT. Proporciona un rendimiento mayor comparada con la clase XmlNode.

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 del nodo, debe crear un objeto que contenga solo el fragmento del nodo y pasar ese objeto al método Transform. Para obtener más información, vea Cómo: Transformación de un fragmento de nodo.

Consulte también

Se aplica a

Transform(IXPathNavigable, XsltArgumentList, Stream)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto IXPathNavigable y guarda el resultado en una secuencia. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As Stream)

Parámetros

input
IXPathNavigable

Un objeto que implementa la interfaz IXPathNavigable. En Microsoft .NET Framework, puede ser una clase XmlNode (normalmente XmlDocument) o una clase XPathDocument que contiene los datos que se van a transformar.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
Stream

Flujo al que se desea enviar la salida.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Ejemplos

En el ejemplo siguiente se ejecuta una transformación XSLT y se genera en .FileStream

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Create the FileStream.
using (FileStream fs = new FileStream(@"c:\data\output.xml", FileMode.Create))
{
   // Execute the transformation.
   xslt.Transform(new XPathDocument("books.xml"), null, fs);
}
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
        
' Create the FileStream.
Using fs As New FileStream("c:\data\output.xml", FileMode.Create)
   ' Execute the transformation.
    xslt.Transform(New XPathDocument("books.xml"), Nothing, fs)
End Using

Comentarios

Si la función XSLT document() está habilitada, se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Este método no admite el xsl:strip-space elemento . Si la hoja de estilos compilada incluía el xsl:strip-space elemento , debe usar la Transform sobrecarga que toma como XmlReader argumento de entrada.

La interfaz IXPathNavigable se implementa en la clase XmlNode y XPathDocument. Estas clases representan una caché en memoria de datos XML.

  • La clase XmlNode se basa en el Modelo de objetos de documento (DOM) del W3C e incluye capacidades de edición.

  • La clase XPathDocument es un almacén de datos de solo lectura basado en el modelo de datos XPath. XPathDocument es la clase recomendada para el procesamiento XSLT. Proporciona un rendimiento mayor comparada con la clase XmlNode.

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 del nodo, debe crear un objeto que contenga solo el fragmento del nodo y pasar ese objeto al método Transform. Para obtener más información, vea Cómo: Transformación de un fragmento de nodo.

Consulte también

Se aplica a

Transform(XmlReader, XsltArgumentList, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto XmlReader y guarda el resultado en un objeto XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter)

Parámetros

input
XmlReader

XmlReader que contiene el documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto de la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Comentarios

Si la hoja de estilos incluye una función XSLT document() , se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Consulte también

Se aplica a

Transform(XmlReader, XsltArgumentList, Stream)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto XmlReader y guarda el resultado en una secuencia. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As Stream)

Parámetros

input
XmlReader

XmlReader que contiene el documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
Stream

Flujo al que se desea enviar la salida.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Comentarios

Si la hoja de estilos incluye una función XSLT document() , se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Consulte también

Se aplica a

Transform(String, String)

Ejecuta la transformación usando el documento de entrada especificado por el URI y envía el resultado a un archivo.

public:
 void Transform(System::String ^ inputUri, System::String ^ resultsFile);
public void Transform (string inputUri, string resultsFile);
member this.Transform : string * string -> unit
Public Sub Transform (inputUri As String, resultsFile As String)

Parámetros

inputUri
String

URI del documento de entrada.

resultsFile
String

URI del archivo de salida.

Excepciones

El valor de inputUri o resultsFile es null.

Se ha producido un error al ejecutar la transformación XSLT.

No se puede encontrar el documento de entrada.

El valor inputUri o resultsFile incluye un nombre de archivo o un directorio que no se puede encontrar.

El valor inputUri o resultsFile no se puede resolver.

o bien

Se produjo un error al procesar la solicitud.

inputUri o resultsFile no es un URI válido.

Hubo un error de análisis al cargar el documento de entrada.

Ejemplos

En el ejemplo siguiente se ejecuta una transformación y se genera en un archivo.

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
        
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")

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

Este método usa un valor predeterminado XmlUrlResolver sin credenciales de usuario para resolver los documentos de entrada y salida. Si alguno de estos recursos se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Con XmlReader la configuración predeterminada se usa para cargar el documento de entrada. El procesamiento de DTD está deshabilitado en .XmlReader Si necesita el procesamiento de DTD, cree un XmlReader con esta característica habilitada y páselo al Transform método .

Consulte también

Se aplica a

Transform(String, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en una clase TextWriter.

public:
 void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As TextWriter)

Parámetros

inputUri
String

URI del documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
TextWriter

Objeto TextWriter al que se desea enviar el resultado.

Excepciones

El valor de inputUri o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

El valor inputUri incluye un nombre de archivo o un directorio que no se puede encontrar.

El valor inputUri no se puede resolver.

o bien

Se produjo un error al procesar la solicitud.

inputUri no es un URI válido.

Hubo un error de análisis al cargar el documento de entrada.

Ejemplos

En el ejemplo siguiente se ejecuta una transformación XSLT y se genera una cadena.

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("HTML_out.xsl");

// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform("books.xml", null, writer);
HTMLoutput = writer.ToString();
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("HTML_out.xsl")
        
' Transform the file and output an HTML string.
Dim HTMLoutput As String
Dim writer As New StringWriter()
xslt.Transform("books.xml", Nothing, writer)
HTMLoutput = writer.ToString()
writer.Close()

Comentarios

Este método usa un valor predeterminado XmlUrlResolver sin credenciales de usuario para resolver el documento de entrada y las instancias de la función XSLT document() encontradas en la hoja de estilos. Si alguno de estos recursos se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Con XmlReader la configuración predeterminada se usa para cargar el documento de entrada. El procesamiento de DTD está deshabilitado en .XmlReader Si necesita el procesamiento de DTD, cree un XmlReader con esta característica habilitada y páselo al Transform método .

Consulte también

Se aplica a

Transform(String, XsltArgumentList, Stream)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en un flujo. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As Stream)

Parámetros

inputUri
String

URI del documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
Stream

Flujo al que se desea enviar la salida.

Excepciones

El valor de inputUri o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

El valor inputUri incluye un nombre de archivo o un directorio que no se puede encontrar.

El valor inputUri no se puede resolver.

o bien

Se produjo un error al procesar la solicitud.

inputUri no es un URI válido.

Hubo un error de análisis al cargar el documento de entrada.

Comentarios

Este método usa un valor predeterminado XmlUrlResolver sin credenciales de usuario para resolver el documento de entrada y las instancias de la función XSLT document() encontradas en la hoja de estilos. Si alguno de estos recursos se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Con XmlReader la configuración predeterminada se usa para cargar el documento de entrada. El procesamiento de DTD está deshabilitado en .XmlReader Si necesita el procesamiento de DTD, cree un XmlReader con esta característica habilitada y páselo al Transform método .

Consulte también

Se aplica a

Transform(IXPathNavigable, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en un objeto XmlWriter.

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, results As XmlWriter)

Parámetros

input
IXPathNavigable

Un objeto que implementa la interfaz IXPathNavigable. En Microsoft .NET Framework, puede ser una clase XmlNode (normalmente XmlDocument) o una clase XPathDocument que contiene los datos que se van a transformar.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto de la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Ejemplos

En el ejemplo siguiente se ejecuta una transformación XSLT y se genera en un XmlWriter objeto .

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);

// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
        
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
        
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), writer)
writer.Close()

Comentarios

Si la función XSLT document() está habilitada, se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Este método no admite el xsl:strip-space elemento . Si la hoja de estilos compilada incluía el xsl:strip-space elemento , debe usar la Transform sobrecarga que toma como XmlReader argumento de entrada.

La interfaz IXPathNavigable se implementa en la clase XmlNode y XPathDocument. Estas clases representan una caché en memoria de datos XML.

  • La clase XmlNode se basa en el Modelo de objetos de documento (DOM) del W3C e incluye capacidades de edición.

  • La clase XPathDocument es un almacén de datos de solo lectura basado en el modelo de datos XPath. XPathDocument es la clase recomendada para el procesamiento XSLT. Proporciona un rendimiento mayor comparada con la clase XmlNode.

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 del nodo, debe crear un objeto que contenga solo el fragmento del nodo y pasar ese objeto al método Transform. Para obtener más información, vea Cómo: Transformación de un fragmento de nodo.

Consulte también

Se aplica a

Transform(XmlReader, XmlWriter)

Ejecuta la transformación usando el documento de entrada especificado por el objeto XmlReader y guarda el resultado en un objeto XmlWriter.

public:
 void Transform(System::Xml::XmlReader ^ input, System::Xml::XmlWriter ^ results);
public void Transform (System.Xml.XmlReader input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, results As XmlWriter)

Parámetros

input
XmlReader

XmlReader que contiene el documento de entrada.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto de la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Ejemplos

En el ejemplo siguiente se transforma el primer libro del archivo books.xml.

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);

XmlReader reader = XmlReader.Create("books.xml");
reader.MoveToContent();

// Execute the transformation.
xslt.Transform(reader, writer);
writer.Close();
reader.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
        
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
        
Dim reader As XmlReader = XmlReader.Create("books.xml")
reader.MoveToContent()
        
' Execute the transformation.
xslt.Transform(reader, writer)
writer.Close()
reader.Close()

Comentarios

Si la función XSLT document() está habilitada, se resuelve mediante una XmlUrlResolver sin credenciales de usuario. Si el recurso externo se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Consulte también

Se aplica a

Transform(String, XmlWriter)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en una clase XmlWriter.

public:
 void Transform(System::String ^ inputUri, System::Xml::XmlWriter ^ results);
public void Transform (string inputUri, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, results As XmlWriter)

Parámetros

inputUri
String

URI del documento de entrada.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto de la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

Excepciones

El valor de inputUri o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

El valor inputUri incluye un nombre de archivo o un directorio que no se puede encontrar.

El valor inputUri no se puede resolver.

o bien

Se produjo un error al procesar la solicitud.

inputUri no es un URI válido.

Hubo un error de análisis al cargar el documento de entrada.

Ejemplos

En el ejemplo siguiente se ejecuta una transformación XSLT y se genera en un XmlWriter objeto .

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);

// Execute the transformation.
xslt.Transform("books.xml", writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
        
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
        
' Execute the transformation.
xslt.Transform("books.xml", writer)
writer.Close()

Comentarios

Este método usa un valor predeterminado XmlUrlResolver sin credenciales de usuario para resolver el documento de entrada y las instancias de la función XSLT document() encontradas en la hoja de estilos. Si alguno de estos recursos se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Con XmlReader la configuración predeterminada se usa para cargar el documento de entrada. El procesamiento de DTD está deshabilitado en .XmlReader Si necesita el procesamiento de DTD, cree un XmlReader con esta característica habilitada y páselo al Transform método .

Este método no admite el xsl:strip-space elemento . Si la hoja de estilos compilada incluía el xsl:strip-space elemento , debe usar la Transform sobrecarga que toma como XmlReader argumento de entrada.

Consulte también

Se aplica a

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Ejecuta la transformación usando el documento de entrada especificado por el objeto XmlReader y guarda el resultado en un objeto XmlWriter. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales y XmlResolver resuelve la función XSLTdocument().

public:
 void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform (System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)

Parámetros

input
XmlReader

XmlReader que contiene el documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto de la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

documentResolver
XmlResolver

XmlResolver que se usa para resolver la función document() de XSLT. Si es null, la función document() no se resuelve.

Excepciones

El valor de input o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

Ejemplos

En el ejemplo siguiente se usa un XmlSecureResolver para resolver la función XSLT document() .

// Create a resolver and specify the necessary credentials.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
System.Net.NetworkCredential myCred;
myCred  = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;

XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver);

// Transform the file.
using (XmlReader reader = XmlReader.Create("books.xml"))
{
   using (XmlWriter writer = XmlWriter.Create("output.xml"))
   {
      xslt.Transform(reader, null, writer, resolver);
   }
}
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
        
Dim settings As New XsltSettings()
settings.EnableDocumentFunction = True
        
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver)
        
' Transform the file.
        Using reader As XmlReader = XmlReader.Create("books.xml")

            Using writer As XmlWriter = XmlWriter.Create("output.xml")
                xslt.Transform(reader, Nothing, writer, resolver)
            End Using

        End Using

Consulte también

Se aplica a

Transform(String, XsltArgumentList, XmlWriter)

Ejecuta la transformación usando el documento de entrada que especifica el URI y guarda el resultado en una clase XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.

public:
 void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform (string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As XmlWriter)

Parámetros

inputUri
String

URI del documento de entrada.

arguments
XsltArgumentList

XsltArgumentList que contiene los argumentos, calificados con el espacio de nombres, utilizados como entrada para la transformación. Este valor puede ser null.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un xsl:output elemento , debe crear mediante XmlWriter el XmlWriterSettings objeto devuelto de la OutputSettings propiedad . Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

Excepciones

El valor de inputUri o results es null.

Se ha producido un error al ejecutar la transformación XSLT.

El valor inputtUri incluye un nombre de archivo o un directorio que no se puede encontrar.

El valor inputUri no se puede resolver.

o bien

Se produjo un error al procesar la solicitud.

inputUri no es un URI válido.

Hubo un error de análisis al cargar el documento de entrada.

Ejemplos

En el ejemplo siguiente se usa un XsltArgumentList objeto para crear un parámetro que represente la fecha y hora actuales.

using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;

public class Sample
{

    public static void Main()
    {

        // Create the XslCompiledTransform and load the stylesheet.
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load("order.xsl");

        // Create the XsltArgumentList.
        XsltArgumentList xslArg = new XsltArgumentList();

        // Create a parameter which represents the current date and time.
        DateTime d = DateTime.Now;
        xslArg.AddParam("date", "", d.ToString());

        // Transform the file.
        using (XmlWriter w = XmlWriter.Create("output.xml"))
        {
            xslt.Transform("order.xml", xslArg, w);
        }
    }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl

Public Class Sample

    Public Shared Sub Main()

        ' Create the XslCompiledTransform and load the stylesheet.
        Dim xslt As New XslCompiledTransform()
        xslt.Load("order.xsl")

        ' Create the XsltArgumentList.
        Dim xslArg As New XsltArgumentList()

        ' Create a parameter which represents the current date and time.
        Dim d As DateTime = DateTime.Now
        xslArg.AddParam("date", "", d.ToString())

        Using w As XmlWriter = XmlWriter.Create("output.xml")
            ' Transform the file.
            xslt.Transform("order.xml", xslArg, w)
        End Using

    End Sub
End Class

En el ejemplo se usan los dos archivos de datos siguientes como entrada.

order.xml

<!--Represents a customer order-->
<order>
  <book ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <cd ISBN='2-3631-4'>
    <title>Americana</title>
    <price>16.95</price>
  </cd>
</order>

order.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:param name="date"/>
  <xsl:template match="/">
    <order>
      <date><xsl:value-of select="$date"/></date>
      <total><xsl:value-of select="sum(//price)"/></total>
    </order>
  </xsl:template>
</xsl:stylesheet>

Comentarios

Este método usa un valor predeterminado XmlUrlResolver sin credenciales de usuario para resolver el documento de entrada y las instancias de la función XSLT document() encontradas en la hoja de estilos. Si alguno de estos recursos se encuentra en un recurso de red que requiere autenticación, use la sobrecarga que toma como XmlResolver uno de sus argumentos y especifique con XmlResolver las credenciales necesarias.

Con XmlReader la configuración predeterminada se usa para cargar el documento de entrada. El procesamiento de DTD está deshabilitado en .XmlReader Si necesita el procesamiento de DTD, cree un XmlReader con esta característica habilitada y páselo al Transform método .

Consulte también

Se aplica a

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Ejecuta la transformación usando el documento de entrada especificado por el objeto IXPathNavigable y guarda el resultado en XmlWriter. El XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución y XmlResolver resuelve la función document() XSLT.

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)

Parámetros

input
IXPathNavigable

El documento que se va a transformar lo especifica el objeto IXPathNavigable.

arguments
XsltArgumentList

Lista de argumentos como XsltArgumentList.

results
XmlWriter

Objeto XmlWriter al que se desea enviar el resultado.

Si la hoja de estilos contiene un elemento xsl:output, deberá crear la clase XmlWriter usando el objeto XmlWriterSettings que devuelve la propiedad OutputSettings. Con ello se garantiza que XmlWriter tenga la configuración de resultados correcta.

documentResolver
XmlResolver

XmlResolver que se usa para resolver la función document() de XSLT. Si es null, la función document() no se resuelve.

Se aplica a