XslCompiledTransform Clase

Definición

Transforma datos XML usando una hoja de estilos XSLT.

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

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

La XslCompiledTransform clase es un procesador XSLT que admite la sintaxis XSLT 1.0. Se trata de una nueva implementación e incluye mejoras de rendimiento en comparación con la clase obsoleta XslTransform . La estructura de la XslCompiledTransform clase es muy similar a la XslTransform clase . El Load método carga y compila la hoja de estilos, mientras que el Transform método ejecuta la transformación XSLT.

La compatibilidad con la función XSLT document() y los bloques de scripts incrustados están deshabilitados de forma predeterminada. Estas características se pueden habilitar mediante la creación de un XsltSettings objeto y su paso al Load método .

Para obtener más información, vea Usar la clase XslCompiledTransform y Migrar desde la clase XslTransform.

Consideraciones sobre la seguridad

Si crea una aplicación que utiliza la clase XslCompiledTransform, debería conocer los siguientes puntos y sus implicaciones:

  • El script XSLT está deshabilitado de manera predeterminada. El script XSLT solo se debería habilitar si necesita compatibilidad con scripts o si está trabajando en un entorno de total confianza.

  • La función document() XSLT está deshabilitada de manera predeterminada. Si habilita la función document(), restrinja los recursos a los que se tiene acceso pasando un objeto XmlSecureResolver al método Transform.

  • Los objetos de extensión están habilitados de manera predeterminada. Si se pasa un objeto XsltArgumentList que contiene objetos de extensión al método Transform, estos objetos se utilizan.

  • Las hojas de estilos XLST pueden incluir referencias a otros archivos y bloques de scripts incrustados. 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.

  • Las aplicaciones XSLT que se ejecutan en un entorno de confianza mixto pueden sufrir suplantaciones de hoja de estilos. 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.

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.

Constructores

XslCompiledTransform()

Inicializa una nueva instancia de la clase XslCompiledTransform.

XslCompiledTransform(Boolean)

Inicializa una nueva instancia de la clase XslCompiledTransform con la configuración de depuración especificada.

Propiedades

OutputSettings

Obtiene un objeto XmlWriterSettings que contiene la información de salida derivada del elemento xsl:output de la hoja de estilos.

TemporaryFiles

Obtiene la clase TempFileCollection que contiene los archivos temporales generados en disco después de una llamada correcta al método Load.

Métodos

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

Compila una hoja de estilos XSLT a un tipo especificado.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
Load(IXPathNavigable)

Compila la hoja de estilos incluida en el objeto IXPathNavigable.

Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila la hoja de estilos XSLT incluida en 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.

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

Carga un método de una hoja de estilos compilada con la utilidad XSLTC.exe.

Load(String)

Carga y compila la hoja de estilos situada en el URI especificado.

Load(String, XsltSettings, XmlResolver)

Carga y compila la hoja de estilos XSLT que especifica el 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.

Load(Type)

Carga la hoja de estilos compilada que se creó usando el compilador XSLT (xsltc.exe).

Load(XmlReader)

Compila la hoja de estilos incluida en XmlReader.

Load(XmlReader, XsltSettings, XmlResolver)

Compila la hoja de estilos XSLT incluida en 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.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
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(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(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, 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, 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.

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, XmlWriter)

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

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(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, 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(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(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(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(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, 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 adicionales en tiempo de ejecución y XmlResolver resuelve la función document() XSLT.

Se aplica a

Seguridad para subprocesos

El XslCompiledTransform objeto es seguro para subprocesos una vez cargado. En otras palabras, después de que el Load método se haya completado correctamente, se Transform puede llamar al método simultáneamente desde varios subprocesos.

Si se vuelve a llamar al Load método en un subproceso mientras se llama al Transform método en otro subproceso, el XslCompiledTransform objeto finaliza la ejecución de la Transform llamada siguiendo usando el estado anterior. El nuevo estado se usa cuando el Load método se completa correctamente.

El Load método no es seguro para subprocesos cuando se llama simultáneamente desde varios subprocesos.

Consulte también