XslCompiledTransform Classe

Definição

Transforma dados XML usando uma folha 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
Herança
XslCompiledTransform

Exemplos

O exemplo a seguir executa uma transformação e saídas para um arquivo.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")

O exemplo usa os dois arquivos de entrada a seguir: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>

Comentários

A XslCompiledTransform classe é um processador XSLT que dá suporte à sintaxe XSLT 1,0.The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax. É uma nova implementação e apresenta ganhos de desempenho em comparação com a classe XslTransform obsoleta.It is a new implementation and includes performance gains when compared to the obsolete XslTransform class. A estrutura da XslCompiledTransform classe é muito semelhante XslTransform à classe.The structure of the XslCompiledTransform class is very similar to the XslTransform class. O Load método carrega e compila a folha de estilos, enquanto o Transform método executa a transformação XSLT.The Load method loads and compiles the style sheet, while the Transform method executes the XSLT transform.

O suporte para a document() função XSLT e os blocos de script inseridos são desabilitados por padrão.Support for the XSLT document() function and embedded script blocks are disabled by default. Esses recursos podem ser habilitados com a XsltSettings criação de um objeto e sua Load passagem para o método.These features can be enabled by creating an XsltSettings object and passing it to the Load method.

Para obter mais informações, consulte usando a classe XslCompiledTransform e migrando da classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.

Considerações sobre segurançaSecurity Considerations

Ao criar um aplicativo que usa a classe de XslCompiledTransform , você deve estar ciente dos seguintes itens e suas implicações:When creating an application that uses the XslCompiledTransform class, you should be aware of the following items and their implications:

  • O script XSLT é desativado por padrão.XSLT scripting is disabled by default. O script XSLT deverá ser habilitado somente se você precisar de suporte a script e estiver trabalhando em um ambiente totalmente confiável.XSLT scripting should be enabled only if you require script support and you are working in a fully trusted environment.

  • A função XSLT document() é desativada por padrão.The XSLT document() function is disabled by default. Se você ativar a função de document() , restringir os recursos que podem ser acessados passando um objeto de XmlSecureResolver para o método de Transform .If you enable the document() function, restrict the resources that can be accessed by passing an XmlSecureResolver object to the Transform method.

  • Os objetos de extensão estão habilitados por padrão.Extension objects are enabled by default. Se um XsltArgumentList objeto que contém objetos de extensão for passado Transform para o método, eles serão utilizados.If an XsltArgumentList object containing extension objects is passed to the Transform method, they are utilized.

  • As folhas de estilos XSLT podem incluir referências a outros arquivos e blocos de script inseridos.XSLT style sheets can include references to other files and embedded script blocks. Um usuário mal-intencionado pode explorar isso fornecendo a você dados ou folhas de estilo que, quando executadas, podem fazer com que o sistema seja processado até que o computador fique com poucos 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.

  • Os aplicativos XSLT que executam em um ambiente de confiança misturado podem levar a falsificação de folha de estilos.XSLT applications that run in a mixed trust environment can result in style sheet spoofing. Por exemplo, um usuário mal-intencionado pode carregar um objeto com uma folha de estilos prejudicial e entregá-lo fora a outro usuário que subseqüentemente chama o método de Transform e executa a transformação.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.

Essas questões de segurança podem ser abrandadas não ativando scripts ou função de document() a menos que a folha de estilos vem de uma fonte não confiável, e retornando objetos de XslCompiledTransform , dados de folhas de estilos XSLT, ou de código-fonte XML de uma fonte não confiável.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.

Construtores

XslCompiledTransform()

Inicializa uma nova instância da classe XslCompiledTransform.Initializes a new instance of the XslCompiledTransform class.

XslCompiledTransform(Boolean)

Inicializa uma nova instância da classe XslCompiledTransform com a configuração de depuração especificada.Initializes a new instance of the XslCompiledTransform class with the specified debug setting.

Propriedades

OutputSettings

Obtém um objeto XmlWriterSettings que contém as informações de saída derivadas do elemento xsl:output da folha de estilos.Gets an XmlWriterSettings object that contains the output information derived from the xsl:output element of the style sheet.

TemporaryFiles

Obtém o TempFileCollection que contém os arquivos temporários gerados no disco após uma chamada bem-sucedida ao 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)

Compila uma folha de estilos XSLT em um tipo especificado.Compiles an XSLT style sheet to a specified type.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
Load(IXPathNavigable)

Compila a folha de estilos contida no objeto IXPathNavigable.Compiles the style sheet contained in the IXPathNavigable object.

Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila a folha de estilos XSLT contida no IXPathNavigable.Compiles the XSLT style sheet contained in the IXPathNavigable. O XmlResolver resolve qualquer elemento XSLT import e include e as configurações de XSLT determinam as permissões para a folha 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[])

Carrega um método de uma folha de estilos compilada usando o utilitário XSLTC.exe.Loads a method from a style sheet compiled using the XSLTC.exe utility.

Load(String)

Carrega e compila a folha de estilos localizada no URI especificado.Loads and compiles the style sheet located at the specified URI.

Load(String, XsltSettings, XmlResolver)

Carrega e compila a folha de estilos XSLT especificada pelo URI.Loads and compiles the XSLT style sheet specified by the URI. O XmlResolver resolve qualquer elemento XSLT import e include e as configurações de XSLT determinam as permissões para a folha de estilos.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

Load(Type)

Carrega a folha de estilos compilada que foi criada usando o Compilador de XSLT (xsltc.exe).Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).

Load(XmlReader)

Compila a folha de estilos contida no XmlReader.Compiles the style sheet contained in the XmlReader.

Load(XmlReader, XsltSettings, XmlResolver)

Compila a folha de estilos XSLT contida no XmlReader.Compiles the XSLT style sheet contained in the XmlReader. O XmlResolver resolve qualquer elemento XSLT import e include e as configurações de XSLT determinam as permissões para a folha de estilos.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)
Transform(IXPathNavigable, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo objeto IXPathNavigable e gera os resultados em um XmlWriter.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream)

Executa a transformação usando o documento de entrada especificado pelo objeto IXPathNavigable e gera os resultados em um fluxo.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to a stream. A XsltArgumentList fornece argumentos adicionais de tempo de execução.The XsltArgumentList provides additional runtime arguments.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Executa a transformação usando o documento de entrada especificado pelo objeto IXPathNavigable e gera os resultados em um TextWriter.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an TextWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo objeto IXPathNavigable e gera os resultados em um XmlWriter.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Executa a transformação usando o documento de entrada especificado pelo objeto IXPathNavigable e gera os resultados em um XmlWriter.Executes the transform by using the input document that is specified by the IXPathNavigable object and outputs the results to an XmlWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais e o XmlResolver resolve a função XSLT document().The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Transform(String, String)

Executa a transformação usando o documento de entrada especificado pelo URI e gera o resultado para um arquivo.Executes the transform using the input document specified by the URI and outputs the results to a file.

Transform(String, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo URI e gera o resultado para um XmlWriter.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter.

Transform(String, XsltArgumentList, Stream)

Executa a transformação usando o documento de entrada especificado pelo URI e gera o resultado em um fluxo.Executes the transform using the input document specified by the URI and outputs the results to stream. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(String, XsltArgumentList, TextWriter)

Executa a transformação usando o documento de entrada especificado pelo URI e gera o resultado em um TextWriter.Executes the transform using the input document specified by the URI and outputs the results to a TextWriter.

Transform(String, XsltArgumentList, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo URI e gera o resultado para um XmlWriter.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo objeto XmlReader e gera os resultados em um XmlWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream)

Executa a transformação usando o documento de entrada especificado pelo objeto XmlReader e gera os resultados em um fluxo.Executes the transform using the input document specified by the XmlReader object and outputs the results to a stream. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, TextWriter)

Executa a transformação usando o documento de entrada especificado pelo objeto XmlReader e gera os resultados em um TextWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to a TextWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo objeto XmlReader e gera os resultados em um XmlWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Executa a transformação usando o documento de entrada especificado pelo objeto XmlReader e gera os resultados em um XmlWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. O XsltArgumentList fornece argumentos de tempo de execução adicionais e o XmlResolver resolve a função XSLT document().The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Aplica-se a

Acesso thread-safe

O XslCompiledTransform objeto é thread-safe depois de ser carregado.The XslCompiledTransform object is thread safe once it has been loaded. Em outras palavras, após o Load método ter sido concluído com êxito, Transform o método pode ser chamado simultaneamente de vários threads.In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.

Se o Load método for chamado novamente em um thread enquanto o Transform método estiver sendo chamado em outro thread, o XslCompiledTransform objeto terminará de Transform executar a chamada continuando a usar o estado antigo.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. O novo estado é usado quando o Load método é concluído com êxito.The new state is used when the Load method successfully completes.


O Load método não é thread-safe quando chamado simultaneamente de vários threads.The Load method is not thread safe when called simultaneously from multiple threads.

Veja também