XslCompiledTransform Classe

Definição

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

Exemplos

O exemplo seguinte executa uma transformação e exporta para um ficheiro.

// 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 utiliza os seguintes dois ficheiros de entrada:

<?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>

Observações

A XslCompiledTransform classe é um processador XSLT que suporta a sintaxe XSLT 1.0. É uma implementação nova e inclui ganhos de desempenho quando comparado com a classe obsoleta XslTransform . A estrutura da XslCompiledTransform classe é muito semelhante à XslTransform classe. O Load método carrega e compila a folha de estilos, enquanto o Transform método executa a transformação XSLT.

O suporte para a função XSLT document() e blocos de script incorporados são desativados por padrão. Esses recursos podem ser habilitados criando um XsltSettings objeto e passando-o para o Load método.

Para obter mais informações, consulte Usando a classe XslCompiledTransform e Migrando da classe XslTransform.

Considerações de segurança

Ao criar um aplicativo que usa a XslCompiledTransform classe, você deve estar ciente dos seguintes itens e suas implicações:

  • O script XSLT está desativado por padrão. O script XSLT deve ser habilitado somente se você precisar de suporte a scripts e estiver trabalhando em um ambiente totalmente confiável.

  • A função XSLT document() está desativada por padrão. Se ativar a document() função, restrinja os recursos que podem ser acedidos passando ThrowingResolver para o Transform método.

  • Os objetos de extensão são habilitados por padrão. Se um XsltArgumentList objeto contendo objetos de extensão é passado para o Transform método, eles são utilizados.

  • As folhas de estilo XSLT podem incluir referências a outros arquivos e blocos de script incorporados. Um usuário mal-intencionado pode explorar isso fornecendo dados ou folhas de estilo que, quando executadas, podem fazer com que seu sistema seja processado até que o computador fique com poucos recursos.

  • Os aplicativos XSLT executados em um ambiente de confiança misto podem resultar em falsificação de folha de estilo. Por exemplo, um usuário mal-intencionado pode carregar um objeto com uma folha de estilos prejudicial e entregá-lo a outro usuário que, posteriormente, chama o Transform método e executa a transformação.

Esses problemas de segurança podem ser atenuados não habilitando scripts ou a document() função, a menos que a folha de estilos venha de uma fonte confiável e não aceitando XslCompiledTransform objetos, folhas de estilo XSLT ou dados de origem XML de uma fonte não confiável.

Construtores

Name Descrição
XslCompiledTransform()

Inicializa uma nova instância da XslCompiledTransform classe.

XslCompiledTransform(Boolean)

Inicializa uma nova instância da XslCompiledTransform classe com a definição de depuração especificada.

Propriedades

Name Descrição
OutputSettings

Obtém um XmlWriterSettings objeto que contém a informação de saída derivada do xsl:output elemento da folha de estilos.

TemporaryFiles

Obtém o TempFileCollection que contém os ficheiros temporários gerados no disco após uma chamada bem-sucedida ao Load método.

Métodos

Name Descrição
CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String)

Compila uma folha de estilo XSLT para um tipo especificado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila a folha de estilo XSLT contida no IXPathNavigablearquivo . Resolve XmlResolver qualquer XSLT import ou include elementos e as definições XSLT determinam as permissões para a folha de estilo.

Load(IXPathNavigable)

Compila a folha de estilo contida no IXPathNavigable objeto.

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

Carrega um método a partir de uma folha de estilo compilada usando a XSLTC.exe utilidade.

Load(String, XsltSettings, XmlResolver)

Carrega e compila a folha de estilo XSLT especificada pelo URI. Resolve XmlResolver qualquer XSLT import ou include elementos e as definições XSLT determinam as permissões para a folha de estilo.

Load(String)

Carrega e compila a folha de estilo localizada no URI especificado.

Load(Type)

Carrega a folha de estilo compilada que foi criada usando o Compilador XSLT (xsltc.exe).

Load(XmlReader, XsltSettings, XmlResolver)

Compila a folha de estilo XSLT contida no XmlReaderarquivo . Resolve XmlResolver qualquer XSLT import ou include elementos e as definições XSLT determinam as permissões para a folha de estilo.

Load(XmlReader)

Compila a folha de estilo contida no XmlReaderarquivo .

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
Transform(IXPathNavigable, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e fornece os resultados para um XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream)

Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e fornece os resultados para um fluxo. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e fornece os resultados para um TextWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e fornece os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução e XmlResolver resolve a função XSLT document() .

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo IXPathNavigable objeto e fornece os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(String, String)

Executa a transformação usando o documento de entrada especificado pelo URI e envia os resultados para um ficheiro.

Transform(String, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo URI e envia os resultados para um XmlWriter.

Transform(String, XsltArgumentList, Stream)

Executa a transformação usando o documento de entrada especificado pelo URI e envia os resultados para o stream. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(String, XsltArgumentList, TextWriter)

Executa a transformação usando o documento de entrada especificado pelo URI e envia os resultados para um TextWriter.

Transform(String, XsltArgumentList, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo URI e envia os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(XmlReader, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e fornece os resultados para um XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream)

Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e fornece os resultados para um fluxo. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(XmlReader, XsltArgumentList, TextWriter)

Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e envia os resultados para um TextWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e fornece os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução e o XmlResolver resolve a função XSLT document() .

Transform(XmlReader, XsltArgumentList, XmlWriter)

Executa a transformação usando o documento de entrada especificado pelo XmlReader objeto e fornece os resultados para um XmlWriter. Fornece XsltArgumentList argumentos adicionais em tempo de execução.

Aplica-se a

Segurança de Thread

O XslCompiledTransform objeto é seguro para threads depois de carregado. Por outras palavras, após o Load método ser concluído com sucesso, o Transform método pode ser chamado simultaneamente a partir de múltiplos threads.

Se o Load método for chamado novamente numa thread enquanto o Transform método está a ser chamado noutra thread, o XslCompiledTransform objeto termina a execução da Transform chamada continuando a usar o estado antigo. O novo estado é usado quando o Load método é concluído com sucesso.

O Load método não é seguro para threads quando chamado simultaneamente a partir de múltiplas threads.

Ver também