XslCompiledTransform XslCompiledTransform XslCompiledTransform XslCompiledTransform Class

Definición

Transforma datos XML utilizando una hoja de estilos XSLT.Transforms XML data using an XSLT style sheet.

public ref class XslCompiledTransform sealed
public sealed class XslCompiledTransform
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
Herencia
XslCompiledTransformXslCompiledTransformXslCompiledTransformXslCompiledTransform

Ejemplos

En el ejemplo siguiente se ejecuta una transformación y se envían los resultados a un archivo.The following example executes a transform and outputs to a file.

// 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:The sample uses the following two input files:

books.xml

<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

output.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
  <HTML>
    <BODY>
      <TABLE BORDER="2">
        <TR>
          <TD>ISBN</TD>
          <TD>Title</TD>
          <TD>Price</TD>
        </TR>
        <xsl:apply-templates select="book"/>
      </TABLE>
    </BODY>
  </HTML>
</xsl:template>
<xsl:template match="book">
  <TR>
    <TD><xsl:value-of select="@ISBN"/></TD>
    <TD><xsl:value-of select="title"/></TD>
    <TD><xsl:value-of select="price"/></TD>
  </TR>
</xsl:template>
</xsl:stylesheet>

Comentarios

La XslCompiledTransform clase es un procesador XSLT que admite la sintaxis XSLT 1,0.The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax. Es una nueva implementación e incluye mejoras de rendimiento en comparación con la XslTransform clase obsoleta.It is a new implementation and includes performance gains when compared to the obsolete XslTransform class. La estructura de la XslCompiledTransform clase es muy similar a la XslTransform clase.The structure of the XslCompiledTransform class is very similar to the XslTransform class. El Load método carga y compila la hoja de estilos, mientras que el Transform método ejecuta la transformación XSLT.The Load method loads and compiles the style sheet, while the Transform method executes the XSLT transform.

La compatibilidad con la document() función XSLT y los bloques de script incrustado está deshabilitada de forma predeterminada.Support for the XSLT document() function and embedded script blocks are disabled by default. Estas características se pueden habilitar si se crea XsltSettings un objeto y se pasa Load al método.These features can be enabled by creating an XsltSettings object and passing it to the Load method.

Para obtener más información, vea uso de la clase XslCompiledTransform y migración desde la clase XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.

Consideraciones de seguridadSecurity Considerations

Si crea una aplicación que utiliza la clase XslCompiledTransform, debería conocer los siguientes puntos y sus implicaciones:When creating an application that uses the XslCompiledTransform class, you should be aware of the following items and their implications:

  • El script XSLT está deshabilitado de manera predeterminada.XSLT scripting is disabled by default. El script XSLT solo se debería habilitar si necesita compatibilidad con scripts o si está trabajando en un entorno de total confianza.XSLT scripting should be enabled only if you require script support and you are working in a fully trusted environment.

  • La función document() XSLT está deshabilitada de manera predeterminada.The XSLT document() function is disabled by default. Si habilita la función document(), restrinja los recursos a los que se tiene acceso pasando un objeto XmlSecureResolver al método Transform.If you enable the document() function, restrict the resources that can be accessed by passing an XmlSecureResolver object to the Transform method.

  • Los objetos de extensión están habilitados de manera predeterminada.Extension objects are enabled by default. Si se pasa un objeto XsltArgumentList que contiene objetos de extensión al método Transform, estos objetos se utilizan.If an XsltArgumentList object containing extension objects is passed to the Transform method, they are utilized.

  • Las hojas de estilos XLST pueden incluir referencias a otros archivos y bloques de scripts incrustados.XSLT style sheets can include references to other files and embedded script blocks. Un usuario malintencionado puede aprovecharse de esta característica para proporcionarle datos u hojas de estilos que, cuando se ejecutan, pueden hacer que el sistema los procese hasta que el equipo se quede sin recursos.A malicious user can exploit this by supplying you with data or style sheets that when executed can cause your system to process until the computer runs low on resources.

  • Las aplicaciones XSLT que se ejecutan en un entorno de confianza mixto pueden sufrir suplantaciones de hoja de estilos.XSLT applications that run in a mixed trust environment can result in style sheet spoofing. Por ejemplo, un usuario malintencionado podría cargar un objeto con una hoja de estilos perjudicial y pasárselo a otro usuario que, a continuación, llama al método Transform y ejecuta la transformación.For example, a malicious user can load an object with a harmful style sheet and hand it off to another user who subsequently calls the Transform method and executes the transformation.

Estos problemas de seguridad se pueden mitigar si no se habilitan los scripts o la función document() a menos que la hoja de estilos provenga de un origen de confianza, y si no se aceptan objetos XslCompiledTransform, hojas de estilos XSLT o datos de origen XML de un origen que no es de confianza.These security issues can be mitigated by not enabling scripting or the document() function unless the style sheet comes from a trusted source, and by not accepting XslCompiledTransform objects, XSLT style sheets, or XML source data from an untrusted source.

Constructores

XslCompiledTransform() XslCompiledTransform() XslCompiledTransform() XslCompiledTransform()

Inicializa una nueva instancia de la clase XslCompiledTransform.Initializes a new instance of the XslCompiledTransform class.

XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean)

Inicializa una nueva instancia de la clase XslCompiledTransform con la configuración de depuración especificada.Initializes a new instance of the XslCompiledTransform class with the specified debug setting.

Propiedades

OutputSettings OutputSettings OutputSettings OutputSettings

Obtiene un objeto XmlWriterSettings que contiene la información de salida derivada del elemento xsl:output de la hoja de estilos.Gets an XmlWriterSettings object that contains the output information derived from the xsl:output element of the style sheet.

TemporaryFiles TemporaryFiles TemporaryFiles TemporaryFiles

Obtiene la clase TempFileCollection que contiene los archivos temporales generados en disco después de una llamada correcta al método Load.Gets the TempFileCollection that contains the temporary files generated on disk after a successful call to the Load method.

Métodos

CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String)

Compila una hoja de estilos XSLT a un tipo especificado.Compiles an XSLT style sheet to a specified type.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable)

Compila la hoja de estilos incluida en el objeto IXPathNavigable.Compiles the style sheet contained in the IXPathNavigable object.

Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila la hoja de estilos XSLT incluida en IXPathNavigable.Compiles the XSLT style sheet contained in the IXPathNavigable. La clase XmlResolver resuelve todos los elementos import e include XSLT y la configuración XSLT determina los permisos de la hoja de estilos.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

Load(MethodInfo, Byte[], Type[]) Load(MethodInfo, Byte[], Type[]) Load(MethodInfo, Byte[], Type[]) Load(MethodInfo, Byte[], Type[])

Carga un método de una hoja de estilos compilada con la utilidad XSLTC.exe.Loads a method from a style sheet compiled using the XSLTC.exe utility.

Load(String) Load(String) Load(String) Load(String)

Carga y compila la hoja de estilos situada en el URI especificado.Loads and compiles the style sheet located at the specified URI.

Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver)

Carga y compila la hoja de estilos XSLT que especifica el URI.Loads and compiles the XSLT style sheet specified by the URI. La clase XmlResolver resuelve todos los elementos import e include XSLT y la configuración XSLT determina los permisos de la hoja de estilos.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

Load(Type) Load(Type) Load(Type) Load(Type)

Carga la hoja de estilos compilada que se creó usando el compilador XSLT (xsltc.exe).Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).

Load(XmlReader) Load(XmlReader) Load(XmlReader) Load(XmlReader)

Compila la hoja de estilos incluida en XmlReader.Compiles the style sheet contained in the XmlReader.

Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver)

Compila la hoja de estilos XSLT incluida en XmlReader.Compiles the XSLT style sheet contained in the XmlReader. La clase XmlResolver resuelve todos los elementos import e include XSLT y la configuración XSLT determina los permisos de la hoja de estilos.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)
Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) 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.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) 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.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to a stream. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional runtime arguments.

Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) 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.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an TextWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) 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.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) 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.Executes the transform by using the input document that is specified by the IXPathNavigable object and outputs the results to an XmlWriter. El XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución y XmlResolver resuelve la función document() XSLT.The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Transform(String, String) Transform(String, String) Transform(String, String) Transform(String, String)

Ejecuta la transformación utilizando el documento de entrada especificado por el URI y envía el resultado a un archivo.Executes the transform using the input document specified by the URI and outputs the results to a file.

Transform(String, XmlWriter) Transform(String, XmlWriter) Transform(String, 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.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter.

Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream)

Ejecuta la transformación utilizando el documento de entrada que especifica el URI y guarda el resultado en una secuencia.Executes the transform using the input document specified by the URI and outputs the results to stream. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) 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.Executes the transform using the input document specified by the URI and outputs the results to a TextWriter.

Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) 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.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter) Transform(XmlReader, 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.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) 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.Executes the transform using the input document specified by the XmlReader object and outputs the results to a stream. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter)

Ejecuta la transformación usando el documento de entrada especificado mediante el objeto XmlReader y guarda el resultado en TextWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to a TextWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) 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.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. La clase XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) 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.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. XsltArgumentList proporciona argumentos adicionales en tiempo de ejecución y XmlResolver resuelve la función document() XSLT.The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Se aplica a

Seguridad para subprocesos

El XslCompiledTransform objeto es seguro para subprocesos una vez que se ha cargado.The XslCompiledTransform object is thread safe once it has been loaded. En otras palabras, una vez Load completado correctamente el método, se Transform puede llamar al método simultáneamente desde varios subprocesos.In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.

Si se Load llama de nuevo al método en un subproceso Transform mientras se llama al método en otro subproceso XslCompiledTransform , el objeto finaliza la Transform ejecución de la llamada al seguir usando el estado anterior.If the Load method is called again in one thread while the Transform method is being called in another thread, the XslCompiledTransform object finishes executing the Transform call by continuing to use the old state. El nuevo estado se usa cuando el Load método se completa correctamente.The new state is used when the Load method successfully completes.

El Load método no es seguro para subprocesos cuando se llama a la vez desde varios subprocesos.The Load method is not thread safe when called simultaneously from multiple threads.

Consulte también: