Partager via


XslCompiledTransform.Load Méthode

Définition

Compile la feuille de style.

Surcharges

Load(IXPathNavigable, XsltSettings, XmlResolver)

Compile la feuille de style XSLT figurant dans IXPathNavigable. XmlResolver résout tous les éléments XSLT import ou include, et les paramètres XSLT déterminent les autorisations pour la feuille de style.

Load(String, XsltSettings, XmlResolver)

Charge et compile la feuille de style XSLT spécifiée par l'URI. XmlResolver résout tous les éléments XSLT import ou include, et les paramètres XSLT déterminent les autorisations pour la feuille de style.

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

Charge une méthode à partir d'une feuille de style compilée à l'aide de l'utilitaire XSLTC.exe.

Load(XmlReader, XsltSettings, XmlResolver)

Compile la feuille de style XSLT figurant dans XmlReader. XmlResolver résout tous les éléments XSLT import ou include, et les paramètres XSLT déterminent les autorisations pour la feuille de style.

Load(XmlReader)

Compile la feuille de style contenue dans XmlReader.

Load(Type)

Charge la feuille de style compilée qui a été créée à l’aide du compilateur XSLT (xsltc.exe).

Load(String)

Charge et compile la feuille de style se trouvant à l'URI spécifié.

Load(IXPathNavigable)

Compile la feuille de style contenue dans l'objet IXPathNavigable.

Remarques

Bien que les performances globales de la classe XslCompiledTransform soient meilleures que celles de la classe XslTransform, la méthode Load de la classe XslCompiledTransform peut s'exécuter plus lentement que la méthode Load de la classe XslTransform la première fois qu'elle est appelée pour une transformation. C'est parce que le fichier XSLT doit être compilé avant d'être chargé. Pour plus d'informations, consultez le billet de blog suivant : XslCompiledTransform plus lent que XslTransform ?.

Notes

Il existe des différences entre le XSLT compilé en mode Debug et le XSLT compilé en mode Release. Dans certaines situations, les feuilles de style compilées en mode Debug ne lèvent pas d'erreurs pendant Load, mais échouent ultérieurement pendant Transform. La même feuille de style compilée en mode Release échoue pendant Load. Ce type de comportement se constate lorsque, par exemple, une variable qui n'est pas de type élément node-set est assignée à une expression qui requiert un élément node-set.

Load(IXPathNavigable, XsltSettings, XmlResolver)

Compile la feuille de style XSLT figurant dans IXPathNavigable. XmlResolver résout tous les éléments XSLT import ou include, et les paramètres XSLT déterminent les autorisations pour la feuille de style.

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)

Paramètres

stylesheet
IXPathNavigable

Objet implémentant l'interface IXPathNavigable. Dans Microsoft .NET Framework, il peut s'agir de XmlNode (généralement XmlDocument) ou de XPathDocument contenant la feuille de style.

settings
XsltSettings

XsltSettings à appliquer à la feuille de style. Si null, le paramètre Default est appliqué.

stylesheetResolver
XmlResolver

XmlResolver utilisé pour résoudre toute feuille de style référencée dans les éléments import et include. Si la valeur est null, les ressources externes ne sont pas résolues.

Exceptions

stylesheet a la valeur null.

La feuille de style contient une erreur.

Exemples

L’exemple suivant charge une feuille de style. L’objet XmlSecureResolver contient les informations d’identification nécessaires pour accéder à tout import ou include élément trouvé dans la feuille de style.

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

Remarques

La XslCompiledTransform classe prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de http://www.w3.org/1999/XSL/Transform noms.

Voir aussi

S’applique à

Load(String, XsltSettings, XmlResolver)

Charge et compile la feuille de style XSLT spécifiée par l'URI. XmlResolver résout tous les éléments XSLT import ou include, et les paramètres XSLT déterminent les autorisations pour la feuille de style.

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)

Paramètres

stylesheetUri
String

URI de la feuille de style.

settings
XsltSettings

XsltSettings à appliquer à la feuille de style. Si null, le paramètre Default est appliqué.

stylesheetResolver
XmlResolver

XmlResolver utilisé pour résoudre l’URI de feuille de style et toutes les feuilles de style référencées dans les éléments XSLT import et include.

Exceptions

La valeur de stylesheetUri ou de stylesheetResolver est null.

La feuille de style contient une erreur.

La feuille de style est introuvable.

La valeur stylesheetUri contient un nom de fichier ou un répertoire qui est introuvable.

La valeur stylesheetUri ne peut pas être résolue.

  • ou - Une erreur s’est produite lors du traitement de la demande.

stylesheetUri n'est pas un URI valide.

Une erreur d'analyse s'est produite lors du chargement de la feuille de style.

Exemples

L’exemple suivant charge une feuille de style stockée sur une ressource réseau. Un objet XmlSecureResolver spécifie les informations d'identification nécessaires pour accéder à la feuille de style.

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

Remarques

La XslCompiledTransform classe prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de http://www.w3.org/1999/XSL/Transform noms.

Un XmlReader paramètre par défaut est utilisé pour charger la feuille de style. Le traitement DTD est désactivé sur le XmlReader. Si vous avez besoin d’un traitement DTD, créez une XmlReader fonctionnalité activée et transmettez-la à la Load méthode.

Voir aussi

S’applique à

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

Charge une méthode à partir d'une feuille de style compilée à l'aide de l'utilitaire 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())

Paramètres

executeMethod
MethodInfo

Objet MethodInfo qui représente la méthode execute générée par le compilateur de la feuille de style compilée.

queryData
Byte[]

Tableau d’octets de structures de données sérialisées dans le champ staticData de la feuille de style compilée tel qu’il a été généré par la méthode CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String).

earlyBoundTypes
Type[]

Tableau de types stocké dans le champ ebTypes généré par le compilateur de la feuille de style compilée.

Exemples

L’exemple de code ci-dessous utilise la Load feuille de style compilée. La transformation réduit la valeur de l’élément Price de dix pour cent.

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

Notes

L’assembly « Transform » utilisé dans cet exemple a été créé à l’aide de l’utilitaire xsltc.exe. Pour plus d’informations sur l’utilisation de cet outil de ligne de commande, consultez Guide pratique pour effectuer une transformation XSLT à l’aide d’un assembly.

L’exemple de code précédent utilise la transformation suivante :

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

Remarques

Cette méthode accepte une feuille de style compilée sous la forme d’un MethodInfo objet, d’un tableau d’octets et d’un tableau de types. DynamicMethod les objets peuvent être utilisés pour permettre aux méthodes de feuille de style compilées d’être ignorées lorsque l’objet XslCompiledTransform est récupéré.

S’applique à

Load(XmlReader, XsltSettings, XmlResolver)

Compile la feuille de style XSLT figurant dans XmlReader. XmlResolver résout tous les éléments XSLT import ou include, et les paramètres XSLT déterminent les autorisations pour la feuille de style.

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)

Paramètres

stylesheet
XmlReader

XmlReader contenant la feuille de style.

settings
XsltSettings

XsltSettings à appliquer à la feuille de style. Si null, le paramètre Default est appliqué.

stylesheetResolver
XmlResolver

XmlResolver utilisé pour résoudre toute feuille de style référencée dans les éléments import et include. Si la valeur est null, les ressources externes ne sont pas résolues.

Exceptions

stylesheet a la valeur null.

La feuille de style contient une erreur.

Exemples

L’exemple suivant charge une feuille de style et active la prise en charge du script XSLT.

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

Remarques

La XslCompiledTransform classe prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de http://www.w3.org/1999/XSL/Transform noms.

La feuille de style se charge à partir du nœud actuel du XmlReader via tous ses enfants. Cela vous permet d’utiliser une partie d’un document comme feuille de style. Une fois la Load méthode terminée, elle XmlReader est positionnée sur le nœud suivant après la fin de la feuille de style. Si la fin du document est atteinte, l'objet XmlReader est positionné à la fin du fichier.

Voir aussi

S’applique à

Load(XmlReader)

Compile la feuille de style contenue dans 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)

Paramètres

stylesheet
XmlReader

XmlReader contenant la feuille de style.

Exceptions

stylesheet a la valeur null.

La feuille de style contient une erreur.

Exemples

L’exemple suivant charge une feuille de style contenue dans un XmlReader objet.

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

Remarques

La XslCompiledTransform classe prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de http://www.w3.org/1999/XSL/Transform noms.

La feuille de style se charge à partir du nœud actuel du XmlReader via tous ses enfants. Cela vous permet d’utiliser une partie d’un document comme feuille de style. Une fois la Load méthode terminée, elle XmlReader est positionnée sur le nœud suivant après la fin de la feuille de style. Si la fin du document est atteinte, l'objet XmlReader est positionné à la fin du fichier.

Cette méthode a le comportement suivant :

  • Aucune XmlUrlResolver information d’identification utilisateur n’est utilisée pour traiter n’importe quel ou xsl:include élémentxsl:import.

  • La document() fonction est désactivée.

  • Les scripts incorporés ne sont pas pris en charge.

Vous pouvez utiliser la Load(XmlReader, XsltSettings, XmlResolver) surcharge pour spécifier une XmlResolver avec les informations d’identification d’authentification nécessaires ou pour spécifier différents paramètres XSLT.

Voir aussi

S’applique à

Load(Type)

Charge la feuille de style compilée qui a été créée à l’aide du compilateur XSLT (xsltc.exe).

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

Paramètres

compiledStylesheet
Type

Nom de la classe qui contient la feuille de style compilée.

Il s'agit habituellement du nom de la feuille de style. Sauf spécification contraire, l'outil xsltc.exe utilise le nom de la feuille de style pour les noms de la classe et de l'assembly.

Exemples

L’exemple suivant montre comment charger une feuille de style compilée à partir d’un assembly XSLT. L’exemple suppose que l’outil xsltc.exe a été utilisé pour créer un assembly nommé bookOrders.dll avec une classe nommée bookOrders.

Notes

Vous devez référencer l’assembly XSLT lors de la compilation du code. Par exemple : 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));  

Remarques

L’outil xsltc.exe est utilisé pour compiler des feuilles de style et générer des assemblys à partir des feuilles de style. La Load méthode charge la feuille de style compilée à partir de l’assembly.

Notes

Vous devez également inclure l’assembly XSLT comme référence dans votre application.

Voir aussi

S’applique à

Load(String)

Charge et compile la feuille de style se trouvant à l'URI spécifié.

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

Paramètres

stylesheetUri
String

URI de la feuille de style.

Exceptions

stylesheetUri a la valeur null.

La feuille de style contient une erreur.

La feuille de style est introuvable.

La valeur stylesheetUri contient un nom de fichier ou un répertoire qui est introuvable.

La valeur stylesheetUri ne peut pas être résolue.

  • ou - Une erreur s’est produite lors du traitement de la demande.

stylesheetUri n'est pas un URI valide.

Une erreur d'analyse s'est produite lors du chargement de la feuille de style.

Exemples

L’exemple suivant exécute une transformation et des sorties dans un fichier.

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

Remarques

La XslCompiledTransform classe prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de http://www.w3.org/1999/XSL/Transform noms.

Cette méthode a le comportement suivant :

  • Aucune XmlUrlResolver information d’identification utilisateur n’est utilisée pour résoudre l’URI de feuille de style et traiter n’importe quel ou xsl:include élémentxsl:import.

  • Un XmlReader paramètre par défaut est utilisé pour charger la feuille de style. Le traitement DTD est désactivé sur le XmlReader. Si vous avez besoin d’un traitement DTD, créez une XmlReader fonctionnalité activée et transmettez-la à la Load méthode.

  • La document() fonction est désactivée.

  • Les scripts incorporés ne sont pas pris en charge.

Vous pouvez utiliser la Load(String, XsltSettings, XmlResolver) surcharge pour spécifier une XmlResolver avec les informations d’identification d’authentification nécessaires ou pour spécifier différents paramètres XSLT.

Voir aussi

S’applique à

Load(IXPathNavigable)

Compile la feuille de style contenue dans l'objet 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)

Paramètres

stylesheet
IXPathNavigable

Objet implémentant l'interface IXPathNavigable. Dans Microsoft .NET Framework, il peut s'agir de XmlNode (généralement XmlDocument) ou de XPathDocument contenant la feuille de style.

Exceptions

stylesheet a la valeur null.

La feuille de style contient une erreur.

Exemples

L’exemple suivant charge une feuille de style contenue dans un XPathDocument objet.

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

Remarques

La XslCompiledTransform classe prend en charge la syntaxe XSLT 1.0. La feuille de style XSLT doit utiliser l’espace de http://www.w3.org/1999/XSL/Transform noms.

Cette méthode a le comportement suivant :

  • Aucune XmlUrlResolver information d’identification utilisateur n’est utilisée pour traiter n’importe quel ou xsl:include élémentxsl:import.

  • La document() fonction est désactivée.

  • Les scripts incorporés ne sont pas pris en charge.

Vous pouvez utiliser la Load surcharge pour spécifier une XmlResolver avec les informations d’identification d’authentification nécessaires ou pour spécifier différents paramètres XSLT.

Voir aussi

S’applique à