XslCompiledTransform Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Transforma los datos XML mediante una hoja de estilos XSLT.
public ref class XslCompiledTransform sealed
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")]
public sealed class XslCompiledTransform
public sealed class XslCompiledTransform
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")>]
type XslCompiledTransform = class
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
- Herencia
-
XslCompiledTransform
- Atributos
Ejemplos
En el ejemplo siguiente se ejecuta una transformación y se generan salidas 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:
<?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>
<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 script 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 de seguridad
Al crear una aplicación que use la XslCompiledTransform clase , debe tener en cuenta los siguientes elementos y sus implicaciones:
El script XSLT está deshabilitado de manera predeterminada. El scripting XSLT solo debe habilitarse si necesita compatibilidad con scripts y está trabajando en un entorno de plena confianza.
La función XSLT
document()está deshabilitada de forma predeterminada. Si habilita ladocument()función, restrinja los recursos a los que se puede acceder pasando ThrowingResolver al Transform método .Los objetos de extensión están habilitados de forma predeterminada. Si se pasa un objeto XsltArgumentList que contiene objetos de extensión al método Transform, estos se utilizan.
Las hojas de estilos XSLT pueden incluir referencias a otros archivos y bloques de scripts incrustados. Un usuario malintencionado puede aprovechar esto proporcionando datos o hojas de estilos que, cuando se ejecuta, puede hacer que el sistema procese hasta que el equipo se quede sin recursos.
Las aplicaciones XSLT que se ejecutan en un entorno de confianza mixta pueden dar lugar a la suplantación de la hoja de estilos. Por ejemplo, un usuario malintencionado puede cargar un objeto con una hoja de estilos perjudicial y entregarlo a otro usuario que posteriormente llama al Transform método y ejecuta la transformación.
Estos problemas de seguridad se pueden mitigar no habilitando el scripting o la document() función a menos que la hoja de estilos proceda de un origen de confianza y no acepte XslCompiledTransform objetos, hojas de estilos XSLT o datos de origen XML de un origen que no sea de confianza.
Constructores
| Nombre | Description |
|---|---|
| XslCompiledTransform() |
Inicializa una nueva instancia de la clase XslCompiledTransform. |
| XslCompiledTransform(Boolean) |
Inicializa una nueva instancia de la XslCompiledTransform clase con la configuración de depuración especificada. |
Propiedades
| Nombre | Description |
|---|---|
| OutputSettings |
Obtiene un XmlWriterSettings objeto que contiene la información de salida derivada del |
| TemporaryFiles |
Obtiene el TempFileCollection objeto que contiene los archivos temporales generados en el disco después de una llamada correcta al Load método . |
Métodos
| Nombre | Description |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Compila una hoja de estilos XSLT en un tipo especificado. |
| Equals(Object) |
Determina si el objeto especificado es igual al objeto actual. (Heredado de Object) |
| GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
Compila la hoja de estilos XSLT contenida en .IXPathNavigable
XmlResolver resuelve cualquier XSLT |
| Load(IXPathNavigable) |
Compila la hoja de estilos contenida en el IXPathNavigable objeto . |
| Load(MethodInfo, Byte[], Type[]) |
Carga un método de una hoja de estilos compilada mediante la |
| Load(String, XsltSettings, XmlResolver) |
Carga y compila la hoja de estilos XSLT especificada por el URI.
XmlResolver resuelve cualquier XSLT |
| Load(String) |
Carga y compila la hoja de estilos ubicada en el URI especificado. |
| Load(Type) |
Carga la hoja de estilos compilada que se creó con el compilador XSLT (xsltc.exe). |
| Load(XmlReader, XsltSettings, XmlResolver) |
Compila la hoja de estilos XSLT contenida en .XmlReader
XmlResolver resuelve cualquier XSLT |
| Load(XmlReader) |
Compila la hoja de estilos contenida en .XmlReader |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
| Transform(IXPathNavigable, XmlWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el IXPathNavigable objeto y genera los resultados en un XmlWriter. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Ejecuta la transformación mediante el documento de entrada especificado por el IXPathNavigable objeto y genera los resultados en una secuencia. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el IXPathNavigable objeto y genera los resultados en un TextWriter. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Ejecuta la transformación mediante el documento de entrada especificado por el IXPathNavigable objeto y genera los resultados en .XmlWriter
XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales y XmlResolver resuelve la función XSLT |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el IXPathNavigable objeto y genera los resultados en un XmlWriter. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(String, String) |
Ejecuta la transformación mediante el documento de entrada especificado por el URI y genera los resultados en un archivo. |
| Transform(String, XmlWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el URI y genera los resultados en .XmlWriter |
| Transform(String, XsltArgumentList, Stream) |
Ejecuta la transformación mediante el documento de entrada especificado por el URI y genera los resultados que se van a transmitir. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(String, XsltArgumentList, TextWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el URI y genera los resultados en .TextWriter |
| Transform(String, XsltArgumentList, XmlWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el URI y genera los resultados en .XmlWriter XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(XmlReader, XmlWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el XmlReader objeto y genera los resultados en un XmlWriter. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Ejecuta la transformación mediante el documento de entrada especificado por el XmlReader objeto y genera los resultados en una secuencia. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el XmlReader objeto y genera los resultados en .TextWriter XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Ejecuta la transformación mediante el documento de entrada especificado por el XmlReader objeto y genera los resultados en un XmlWriter.
XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales y XmlResolver resuelve la función XSLT |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
Ejecuta la transformación mediante el documento de entrada especificado por el XmlReader objeto y genera los resultados en un XmlWriter. XsltArgumentList proporciona argumentos en tiempo de ejecución adicionales. |
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 mediante el uso del 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.