XslCompiledTransform.Load Método

Definição

Compila a folha de estilos.

Sobrecargas

Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila a folha de estilos XSLT contida no 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.

Load(String, XsltSettings, XmlResolver)

Carrega e compila a folha de estilos XSLT especificada pelo 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.

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

Carrega um método de uma folha de estilos compilada usando o utilitário XSLTC.exe.

Load(XmlReader, XsltSettings, XmlResolver)

Compila a folha de estilos XSLT contida no 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.

Load(XmlReader)

Compila a folha de estilos contida no XmlReader.

Load(Type)

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

Load(String)

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

Load(IXPathNavigable)

Compila a folha de estilos contida no objeto IXPathNavigable.

Comentários

Embora o desempenho geral da classe XslCompiledTransform seja melhor do que o da classe XslTransform, o método Load da classe XslCompiledTransform possivelmente apresentará um desempenho mais lento do que o método Load da classe XslTransform na primeira vez que for chamado em uma transformação. Isso ocorre porque o arquivo XSLT deve ser compilado antes que seja carregado. Para saber mais, confira a postagem de blog a seguir: XslCompiledTransform mais lento do que XslTransform?

Observação

Existem diferenças entre XSLT compilou no modo de depuração e em XSLT compilados no modo de versão. Em algumas situações, folhas de estilos compiladas no modo de depuração não) lançarão erros durante Load, mas irão falhar mais tarde durante Transform. A mesma folha de estilo embutido no modo de lançamento falhará durante Load. Um exemplo desse comportamento é quando uma variável que não seja de um tipo nó- definido é atribuído a uma expressão onde nó- definido é necessário.

Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila a folha de estilos XSLT contida no 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.

public:
 void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet, System::Xml::Xsl::XsltSettings ^ settings, System::Xml::XmlResolver ^ stylesheetResolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.Xsl.XsltSettings? settings, System.Xml.XmlResolver? stylesheetResolver);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver);
member this.Load : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltSettings * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As IXPathNavigable, settings As XsltSettings, stylesheetResolver As XmlResolver)

Parâmetros

stylesheet
IXPathNavigable

Um objeto que implementa a interface IXPathNavigable. No Microsoft .NET Framework, isso pode ser um XmlNode (normalmente, um XmlDocument) ou um XPathDocument que contém a folha de estilos.

settings
XsltSettings

O XsltSettings a ser aplicado à folha de estilos. Se isso for null, a configuração Default será aplicada.

stylesheetResolver
XmlResolver

O XmlResolver usado para resolver as folhas de estilos referenciadas nos elementos XSLT import e include. Se for null, os recursos externos não serão resolvidos.

Exceções

O valor stylesheet é null.

A folha de estilos contém um erro.

Exemplos

O exemplo a seguir carrega uma folha de estilos. O XmlSecureResolver objeto contém as credenciais necessárias para acessar qualquer import elemento ou include elemento encontrado na folha de estilos.

// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred  = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(new XPathDocument("http://serverName/data/xsl/sort.xsl"), XsltSettings.Default, resolver);
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlUrlResolver()
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
        
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load(New XPathDocument("http://serverName/data/xsl/sort.xsl"), XsltSettings.Default, resolver)

Comentários

A XslCompiledTransform classe dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o http://www.w3.org/1999/XSL/Transform namespace.

Confira também

Aplica-se a

Load(String, XsltSettings, XmlResolver)

Carrega e compila a folha de estilos XSLT especificada pelo 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.

public:
 void Load(System::String ^ stylesheetUri, System::Xml::Xsl::XsltSettings ^ settings, System::Xml::XmlResolver ^ stylesheetResolver);
public void Load (string stylesheetUri, System.Xml.Xsl.XsltSettings? settings, System.Xml.XmlResolver? stylesheetResolver);
public void Load (string stylesheetUri, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver);
member this.Load : string * System.Xml.Xsl.XsltSettings * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheetUri As String, settings As XsltSettings, stylesheetResolver As XmlResolver)

Parâmetros

stylesheetUri
String

O URI da folha de estilos.

settings
XsltSettings

O XsltSettings a ser aplicado à folha de estilos. Se isso for null, a configuração Default será aplicada.

stylesheetResolver
XmlResolver

O XmlResolver usado para resolver o URI de folha de estilos e quaisquer folhas de estilos referenciadas nos elementos XSLT import e include.

Exceções

O valor stylesheetUri ou stylesheetResolver é null.

A folha de estilos contém um erro.

A folha de estilos não foi encontrada.

O valor stylesheetUri inclui um nome de arquivo ou diretório que não pôde ser encontrado.

Não é possível resolver um valor stylesheetUri.

- ou - Ocorreu um erro ao processar a solicitação.

stylesheetUri não é um URI válido.

Ocorreu um erro de análise ao carregar a folha de estilos.

Exemplos

O exemplo a seguir carrega uma folha de estilos armazenada em um recurso de rede. Um objeto de XmlSecureResolver especifica as credenciais necessárias para acessar a folha de estilos.

// Create the XslCompiledTransform object.
XslCompiledTransform xslt = new XslCompiledTransform();

// Create a resolver and set the credentials to use.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
resolver.Credentials = CredentialCache.DefaultCredentials;

// Load the style sheet.
xslt.Load("http://serverName/data/xsl/sort.xsl", null, resolver);
' Create the XslCompiledTransform object.
Dim xslt As New XslCompiledTransform()
        
' Create a resolver and set the credentials to use.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
resolver.Credentials = CredentialCache.DefaultCredentials
        
' Load the style sheet.
xslt.Load("http://serverName/data/xsl/sort.xsl", Nothing, resolver)

Comentários

A XslCompiledTransform classe dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o http://www.w3.org/1999/XSL/Transform namespace.

Uma XmlReader com configurações padrão é usada para carregar a folha de estilos. O XmlReaderprocessamento de DTD está desabilitado no . Se você precisar de processamento de DTD, crie um XmlReader com esse recurso habilitado e passe-o para o Load método.

Confira também

Aplica-se a

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

Carrega um método de uma folha de estilos compilada usando o utilitário XSLTC.exe.

public:
 void Load(System::Reflection::MethodInfo ^ executeMethod, cli::array <System::Byte> ^ queryData, cli::array <Type ^> ^ earlyBoundTypes);
public void Load (System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[]? earlyBoundTypes);
public void Load (System.Reflection.MethodInfo executeMethod, byte[] queryData, Type[] earlyBoundTypes);
member this.Load : System.Reflection.MethodInfo * byte[] * Type[] -> unit
Public Sub Load (executeMethod As MethodInfo, queryData As Byte(), earlyBoundTypes As Type())

Parâmetros

executeMethod
MethodInfo

Um objeto MethodInfo que representa o método execute gerado pelo compilador da folha de estilos compilada.

queryData
Byte[]

Uma matriz de bytes de estruturas de dados serializados no campo staticData da folha de estilos compilada, como gerada pelo método CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String).

earlyBoundTypes
Type[]

Uma matriz de tipos armazenada no campo ebTypes gerado pelo compilador da folha de estilos compilada.

Exemplos

O exemplo de código a seguir usa a Load folha de estilos para carregar uma compilação. A transformação reduz o valor do Price elemento em 10%.

using System;
using System.IO;
using System.Reflection;
using System.Xml;
using System.Xml.Xsl;

class Example
{
    static void Main()
    {
        // Load a stylesheet compiled using the XSLTC.EXE utility
        Type compiledStylesheet = Assembly.Load("Transform").GetType("Transform");

        // Extract private members from the compiled stylesheet
        BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Static;
        MethodInfo executeMethod = compiledStylesheet.GetMethod("Execute", bindingFlags);
        object staticData = compiledStylesheet.GetField("staticData", bindingFlags).GetValue(null);
        object earlyBoundTypes = compiledStylesheet.GetField("ebTypes", bindingFlags).GetValue(null);

        // Load into XslCompiledTransform
        XslCompiledTransform xslt = new XslCompiledTransform();
        xslt.Load(executeMethod, (byte[])staticData, (Type[])earlyBoundTypes);

        // Run the transformation
        xslt.Transform(XmlReader.Create(new StringReader("<Root><Price>9.50</Price></Root>")), (XsltArgumentList)null, Console.Out);
    }
}
Imports System.IO
Imports System.Reflection
Imports System.Xml
Imports System.Xml.Xsl

Module Module1

    Sub Main()
        ' Load a stylesheet compiled using the XSLTC.EXE utility
        Dim compiledStylesheet As Type = [Assembly].Load("Transform").GetType("Transform")

        ' Extract private members from the compiled stylesheet
        Dim bindingFlags As BindingFlags = bindingFlags.NonPublic Or bindingFlags.Static
        Dim executeMethod As MethodInfo = compiledStylesheet.GetMethod("Execute", bindingFlags)
        Dim staticData As Object = compiledStylesheet.GetField("staticData", bindingFlags).GetValue(Nothing)
        Dim earlyBoundTypes As Object = compiledStylesheet.GetField("ebTypes", bindingFlags).GetValue(Nothing)

        ' Load into XslCompiledTransform
        Dim xslt As New XslCompiledTransform()
        xslt.Load(executeMethod, CType(staticData, Byte()), CType(earlyBoundTypes, Type()))

        ' Run the transformation
        xslt.Transform(XmlReader.Create(New StringReader("<Root><Price>9.50</Price></Root>")), CType(Nothing, XsltArgumentList), Console.Out)
    End Sub
End Module

Observação

O assembly "Transformar" usado neste exemplo foi criado usando o utilitário xsltc.exe. Para obter informações detalhadas sobre como usar essa ferramenta de linha de comando, consulte Como executar uma transformação XSLT usando um assembly.

O exemplo de código anterior usa a seguinte transformação:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="urn:my-scripts">
  <msxsl:script language="C#" implements-prefix="user">
    <![CDATA[
  public double modifyPrice(double price){
    price*=0.9;
    return price;
  }
  ]]>
  </msxsl:script>
  <xsl:template match="Root">
    <Root xmlns="">
      <Price><xsl:value-of select="user:modifyPrice(Price)"/></Price>
    </Root>
  </xsl:template>
</xsl:stylesheet>

Comentários

Esse método aceita uma folha de estilos compilada na forma de um MethodInfo objeto, uma matriz de bytes e uma matriz de tipo. DynamicMethod os objetos podem ser usados para permitir que métodos de folha de estilos compilados sejam descartados quando o XslCompiledTransform objeto é recuperado.

Aplica-se a

Load(XmlReader, XsltSettings, XmlResolver)

Compila a folha de estilos XSLT contida no 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.

public:
 void Load(System::Xml::XmlReader ^ stylesheet, System::Xml::Xsl::XsltSettings ^ settings, System::Xml::XmlResolver ^ stylesheetResolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.Xsl.XsltSettings? settings, System.Xml.XmlResolver? stylesheetResolver);
public void Load (System.Xml.XmlReader stylesheet, System.Xml.Xsl.XsltSettings settings, System.Xml.XmlResolver stylesheetResolver);
member this.Load : System.Xml.XmlReader * System.Xml.Xsl.XsltSettings * System.Xml.XmlResolver -> unit
Public Sub Load (stylesheet As XmlReader, settings As XsltSettings, stylesheetResolver As XmlResolver)

Parâmetros

stylesheet
XmlReader

O XmlReader que contém a folha de estilos.

settings
XsltSettings

O XsltSettings a ser aplicado à folha de estilos. Se isso for null, a configuração Default será aplicada.

stylesheetResolver
XmlResolver

O XmlResolver usado para resolver as folhas de estilos referenciadas nos elementos XSLT import e include. Se for null, os recursos externos não serão resolvidos.

Exceções

O valor stylesheet é null.

A folha de estilos contém um erro.

Exemplos

O exemplo a seguir carrega uma folha de estilos e habilita o suporte para scriptSLT.

// Create the XslCompiledTransform object.
XslCompiledTransform xslt = new XslCompiledTransform();

// Create a resolver and set the credentials to use.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
resolver.Credentials = CredentialCache.DefaultCredentials;

XmlReader reader = XmlReader.Create("http://serverName/data/xsl/sort.xsl");

// Create the XsltSettings object with script enabled.
XsltSettings settings = new XsltSettings(false,true);

// Load the style sheet.
xslt.Load(reader, settings, resolver);
' Create the XslCompiledTransform object.
Dim xslt As New XslCompiledTransform()
        
' Create a resolver and set the credentials to use.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
resolver.Credentials = CredentialCache.DefaultCredentials
        
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/xsl/sort.xsl")
        
' Create the XsltSettings object with script enabled.
Dim settings As New XsltSettings(False, True)
        
' Load the style sheet.
xslt.Load(reader, settings, resolver)

Comentários

A XslCompiledTransform classe dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o http://www.w3.org/1999/XSL/Transform namespace.

A folha de estilos é carregada do nó atual de XmlReader todos os seus filhos. Isso permite que você use uma parte de um documento como a folha de estilos. Depois que o Load método for concluído, ele XmlReader será posicionado no próximo nó após o final da folha de estilos. Se o final do documento é alcançada, XmlReader está localizado no final do arquivo (EOF).

Confira também

Aplica-se a

Load(XmlReader)

Compila a folha de estilos contida no XmlReader.

public:
 void Load(System::Xml::XmlReader ^ stylesheet);
public void Load (System.Xml.XmlReader stylesheet);
member this.Load : System.Xml.XmlReader -> unit
Public Sub Load (stylesheet As XmlReader)

Parâmetros

stylesheet
XmlReader

Um XmlReader que contém a folha de estilos.

Exceções

O valor stylesheet é null.

A folha de estilos contém um erro.

Exemplos

O exemplo a seguir carrega uma folha de estilos contida em um XmlReader objeto.

// Create a reader that contains the style sheet.
XmlReader reader = XmlReader.Create("titles.xsl");
reader.ReadToDescendant("xsl:stylesheet");

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(reader);
' Create a reader that contains the style sheet.
Dim reader As XmlReader = XmlReader.Create("titles.xsl")
reader.ReadToDescendant("xsl:stylesheet")
        
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load(reader)

Comentários

A XslCompiledTransform classe dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o http://www.w3.org/1999/XSL/Transform namespace.

A folha de estilos é carregada do nó atual de XmlReader todos os seus filhos. Isso permite que você use uma parte de um documento como a folha de estilos. Depois que o Load método for concluído, ele XmlReader será posicionado no próximo nó após o final da folha de estilos. Se o final do documento é alcançada, XmlReader está localizado no final do arquivo (EOF).

Esse método tem o seguinte comportamento:

  • Um XmlUrlResolver sem credenciais de usuário é usado para processar qualquer xsl:import um ou xsl:include elementos.

  • A document() função está desabilitada.

  • Não há suporte para scripts inseridos.

Você pode usar a Load(XmlReader, XsltSettings, XmlResolver) sobrecarga para especificar uma XmlResolver com as credenciais de autenticação necessárias ou para especificar diferentes configurações de XSLT.

Confira também

Aplica-se a

Load(Type)

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

public:
 void Load(Type ^ compiledStylesheet);
public void Load (Type compiledStylesheet);
member this.Load : Type -> unit
Public Sub Load (compiledStylesheet As Type)

Parâmetros

compiledStylesheet
Type

O nome da classe que contém a folha de estilos compilada.

Esse geralmente é o nome da folha de estilos. A menos que especificado de outra forma, a ferramenta xsltc.exe usa o nome da folha de estilos para os nomes de classe e de assembly.

Exemplos

O exemplo a seguir mostra como carregar uma folha de estilos compilada de um assembly XSLT. O exemplo pressupõe que a ferramenta xsltc.exe foi usada para criar um assembly chamado bookOrders.dll com uma classe chamada bookOrders.

Observação

Você precisa fazer referência ao assembly XSLT ao compilar o código. Por exemplo, csc /r:system.dll;system.xml.dll;bookOrders.dll myCode.cs.

// Load the type of the class.  
XslCompiledTransform xslt = new XslCompiledTransform();  
xslt.Load(typeof(bookOrders));  

Comentários

A ferramenta xsltc.exe é usada para compilar folhas de estilo e gerar assemblies das folhas de estilo. O Load método carrega a folha de estilos compilada do assembly.

Observação

Você também deve incluir o assembly XSLT como uma referência em seu aplicativo.

Confira também

Aplica-se a

Load(String)

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

public:
 void Load(System::String ^ stylesheetUri);
public void Load (string stylesheetUri);
member this.Load : string -> unit
Public Sub Load (stylesheetUri As String)

Parâmetros

stylesheetUri
String

O URI da folha de estilos.

Exceções

O valor stylesheetUri é null.

A folha de estilos contém um erro.

A folha de estilos não foi encontrada.

O valor stylesheetUri inclui um nome de arquivo ou diretório que não pôde ser encontrado.

Não é possível resolver um valor stylesheetUri.

- ou - Ocorreu um erro ao processar a solicitação.

stylesheetUri não é um URI válido.

Ocorreu um erro de análise ao carregar a folha de estilos.

Exemplos

O exemplo a seguir executa uma transformação e gera saídas para um arquivo.

// 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")

Comentários

A XslCompiledTransform classe dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o http://www.w3.org/1999/XSL/Transform namespace.

Esse método tem o seguinte comportamento:

  • Um XmlUrlResolver sem credenciais de usuário é usado para resolver o URI da folha de estilos e processar qualquer elemento ou xsl:include qualquer xsl:import um.

  • Uma XmlReader com configurações padrão é usada para carregar a folha de estilos. O XmlReaderprocessamento de DTD está desabilitado no . Se você precisar de processamento de DTD, crie um XmlReader com esse recurso habilitado e passe-o para o Load método.

  • A document() função está desabilitada.

  • Não há suporte para scripts inseridos.

Você pode usar a Load(String, XsltSettings, XmlResolver) sobrecarga para especificar uma XmlResolver com as credenciais de autenticação necessárias ou para especificar diferentes configurações de XSLT.

Confira também

Aplica-se a

Load(IXPathNavigable)

Compila a folha de estilos contida no objeto IXPathNavigable.

public:
 void Load(System::Xml::XPath::IXPathNavigable ^ stylesheet);
public void Load (System.Xml.XPath.IXPathNavigable stylesheet);
member this.Load : System.Xml.XPath.IXPathNavigable -> unit
Public Sub Load (stylesheet As IXPathNavigable)

Parâmetros

stylesheet
IXPathNavigable

Um objeto que implementa a interface IXPathNavigable. No Microsoft .NET Framework, isso pode ser um XmlNode (normalmente, um XmlDocument) ou um XPathDocument que contém a folha de estilos.

Exceções

O valor stylesheet é null.

A folha de estilos contém um erro.

Exemplos

O exemplo a seguir carrega uma folha de estilos contida em um XPathDocument objeto.

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(new XPathDocument("http://serverName/data/xsl/sort.xsl"));
Dim xslt As New XslCompiledTransform()
xslt.Load(New XPathDocument("http://serverName/data/xsl/sort.xsl"))

Comentários

A XslCompiledTransform classe dá suporte à sintaxe XSLT 1.0. A folha de estilos XSLT deve usar o http://www.w3.org/1999/XSL/Transform namespace.

Esse método tem o seguinte comportamento:

  • Um XmlUrlResolver sem credenciais de usuário é usado para processar qualquer xsl:import um ou xsl:include elementos.

  • A document() função está desabilitada.

  • Não há suporte para scripts inseridos.

Você pode usar a Load sobrecarga para especificar uma XmlResolver com as credenciais de autenticação necessárias ou para especificar diferentes configurações de XSLT.

Confira também

Aplica-se a