XslCompiledTransform.Load Metoda

Definice

Zkompiluje šablonu stylů.

Přetížení

Load(IXPathNavigable, XsltSettings, XmlResolver)

Zkompiluje šablonu stylů XSLT obsaženou v souboru IXPathNavigable. Vyřeší XmlResolver všechny prvky importu nebo zahrnutí XSLT a nastavení XSLT určí oprávnění pro šablonu stylů.

Load(String, XsltSettings, XmlResolver)

Načte a zkompiluje šablonu stylů XSLT určenou identifikátorem URI. Vyřeší XmlResolver všechny prvky importu nebo zahrnutí XSLT a nastavení XSLT určí oprávnění pro šablonu stylů.

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

Načte metodu ze šablony stylů zkompilované pomocí XSLTC.exe nástroje.

Load(XmlReader, XsltSettings, XmlResolver)

Zkompiluje šablonu stylů XSLT obsaženou v souboru XmlReader. Vyřeší XmlResolver všechny prvky importu nebo zahrnutí XSLT a nastavení XSLT určí oprávnění pro šablonu stylů.

Load(XmlReader)

Zkompiluje šablonu stylů obsaženou v souboru XmlReader.

Load(Type)

Načte kompilovanou šablonu stylů vytvořenou pomocí kompilátoru XSLT (xsltc.exe).

Load(String)

Načte a zkompiluje šablonu stylů umístěnou v zadaném identifikátoru URI.

Load(IXPathNavigable)

Zkompiluje šablonu stylů obsaženou v objektu IXPathNavigable .

Poznámky

I když je celkový výkon XslCompiledTransform třídy lepší než XslTransform třída, Load metoda třídy může provádět pomaleji než Load metoda XslCompiledTransform XslTransform třídy při prvním volání transformace. Důvodem je to, že soubor XSLT musí být před načtením zkompilován. Další informace najdete v následujícím blogovém příspěvku: XslCompiledTransform Pomalejší než XslTransform?

Poznámka

Existují rozdíly mezi XSLT zkompilovaným v režimu ladění a XSLT kompilovaným v režimu vydání. V některých situacích nebudou šablony stylů kompilované v režimu ladění vyvolat chyby během Load, ale později selžou během Transform. Stejná šablona stylů zkompilovaná v režimu vydání selže během Load. Příkladem takového chování je, že proměnná, která není typu sady uzlů, je přiřazena k výrazu, ve kterém je vyžadována sada uzlů.

Load(IXPathNavigable, XsltSettings, XmlResolver)

Zkompiluje šablonu stylů XSLT obsaženou v souboru IXPathNavigable. Vyřeší XmlResolver všechny prvky importu nebo zahrnutí XSLT a nastavení XSLT určí oprávnění pro šablonu stylů.

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)

Parametry

stylesheet
IXPathNavigable

Objekt implementuje IXPathNavigable rozhraní. V microsoft .NET Framework to může být buď (XmlNodeobvykle), XmlDocumentnebo XPathDocument obsahující šablonu stylů.

settings
XsltSettings

To XsltSettings platí pro šablonu stylů. Pokud ano null, použije se Default toto nastavení.

stylesheetResolver
XmlResolver

Slouží XmlResolver k vyřešení všech šablon stylů odkazovaných v importu XSLT a zahrnutí prvků. Pokud ano null, externí prostředky se nevyřeší.

Výjimky

Hodnota stylesheet je null.

Šablona stylů obsahuje chybu.

Příklady

Následující příklad načte šablonu stylů. Objekt XmlSecureResolver obsahuje přihlašovací údaje potřebné pro přístup k jakýmkoli import prvkům nalezených include v šabloně stylů.

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

Poznámky

Třída XslCompiledTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat http://www.w3.org/1999/XSL/Transform obor názvů.

Viz také

Platí pro

Load(String, XsltSettings, XmlResolver)

Načte a zkompiluje šablonu stylů XSLT určenou identifikátorem URI. Vyřeší XmlResolver všechny prvky importu nebo zahrnutí XSLT a nastavení XSLT určí oprávnění pro šablonu stylů.

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)

Parametry

stylesheetUri
String

Identifikátor URI šablony stylů

settings
XsltSettings

To XsltSettings platí pro šablonu stylů. Pokud ano null, použije se Default toto nastavení.

stylesheetResolver
XmlResolver

Slouží XmlResolver k překladu identifikátoru URI šablony stylů a všech šablon stylů odkazovaných v importu XSLT a zahrnutí prvků.

Výjimky

Hodnota stylesheetUri je stylesheetResolver null.

Šablona stylů obsahuje chybu.

Šablonu stylů nelze najít.

Hodnota stylesheetUri obsahuje název souboru nebo adresář, který nelze najít.

Hodnotu stylesheetUri nelze přeložit.

-nebo- Při zpracování požadavku došlo k chybě.

stylesheetUri není platný identifikátor URI.

Při načítání šablony stylů došlo k chybě analýzy.

Příklady

Následující příklad načte šablonu stylů, která je uložená v síťovém prostředku. Objekt XmlSecureResolver určuje přihlašovací údaje potřebné pro přístup k šabloně stylů.

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

Poznámky

Třída XslCompiledTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat http://www.w3.org/1999/XSL/Transform obor názvů.

K XmlReader načtení šablony stylů se používá výchozí nastavení. Zpracování DTD je zakázáno na XmlReader. Pokud požadujete zpracování DTD, vytvořte s touto funkcí povolenou XmlReader Load funkci a předejte ji metodě.

Viz také

Platí pro

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

Načte metodu ze šablony stylů zkompilované pomocí XSLTC.exe nástroje.

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

Parametry

executeMethod
MethodInfo

Objekt MethodInfo představující metodu execute vygenerovanou kompilátorem zkompilované šablony stylů.

queryData
Byte[]

Pole bajtů serializovaných datových struktur v poli staticData zkompilované šablony stylů, jak je vygenerováno metodou CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) .

earlyBoundTypes
Type[]

Pole typů uložených v poli ebTypes generované kompilátorem zkompilované šablony stylů.

Příklady

Následující příklad kódu používá k Load načtení kompilované šablony stylů. Transformace snižuje hodnotu Price prvku o deset procent.

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

Poznámka

Sestavení Transformace použité v tomto příkladu bylo sestaveno pomocí nástroje xsltc.exe. Podrobné informace o použití tohoto nástroje příkazového řádku naleznete v tématu Postupy: Provedení transformace XSLT pomocí sestavení.

Předchozí příklad kódu používá následující transformaci:

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

Poznámky

Tato metoda přijímá kompilovanou šablonu stylů ve formě objektu MethodInfo , bajtového pole a pole typu. DynamicMethod objekty lze použít k povolení zkompilované metody šablon stylů, aby byly při uvolnění objektu XslCompiledTransform zahozeny.

Platí pro

Load(XmlReader, XsltSettings, XmlResolver)

Zkompiluje šablonu stylů XSLT obsaženou v souboru XmlReader. Vyřeší XmlResolver všechny prvky importu nebo zahrnutí XSLT a nastavení XSLT určí oprávnění pro šablonu stylů.

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)

Parametry

stylesheet
XmlReader

Obsahuje XmlReader šablonu stylů.

settings
XsltSettings

To XsltSettings platí pro šablonu stylů. Pokud ano null, použije se Default toto nastavení.

stylesheetResolver
XmlResolver

Slouží XmlResolver k vyřešení všech šablon stylů odkazovaných v importu XSLT a zahrnutí prvků. Pokud ano null, externí prostředky se nevyřeší.

Výjimky

Hodnota stylesheet je null.

Šablona stylů obsahuje chybu.

Příklady

Následující příklad načte šablonu stylů a umožňuje podporu skriptování 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)

Poznámky

Třída XslCompiledTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat http://www.w3.org/1999/XSL/Transform obor názvů.

Šablona stylů se načte z aktuálního uzlu všech podřízených XmlReader položek. To vám umožní použít část dokumentu jako šablonu stylů. Load Po dokončení metody se XmlReader umístí na další uzel po konci šablony stylů. Pokud je dosaženo konce dokumentu, XmlReader umístí se na konec souboru (EOF).

Viz také

Platí pro

Load(XmlReader)

Zkompiluje šablonu stylů obsaženou v souboru 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)

Parametry

stylesheet
XmlReader

Obsahuje XmlReader šablonu stylů.

Výjimky

Hodnota stylesheet je null.

Šablona stylů obsahuje chybu.

Příklady

Následující příklad načte šablonu stylů obsaženou v objektu XmlReader .

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

Poznámky

Třída XslCompiledTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat http://www.w3.org/1999/XSL/Transform obor názvů.

Šablona stylů se načte z aktuálního uzlu všech podřízených XmlReader položek. To vám umožní použít část dokumentu jako šablonu stylů. Load Po dokončení metody se XmlReader umístí na další uzel po konci šablony stylů. Pokud je dosaženo konce dokumentu, XmlReader umístí se na konec souboru (EOF).

Tato metoda má následující chování:

  • K XmlUrlResolver zpracování jakýchkoli prvků xsl:import nebo xsl:include prvků se používá bez uživatelských přihlašovacích údajů.

  • Funkce document() je zakázaná.

  • Vložené skripty nejsou podporovány.

Přetížení můžete použít Load(XmlReader, XsltSettings, XmlResolver) k zadání XmlResolver s potřebnými ověřovacími přihlašovacími údaji nebo k určení různých nastavení XSLT.

Viz také

Platí pro

Load(Type)

Načte kompilovanou šablonu stylů vytvořenou pomocí kompilátoru XSLT (xsltc.exe).

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

Parametry

compiledStylesheet
Type

Název třídy, která obsahuje kompilovanou šablonu stylů.

Obvykle se jedná o název šablony stylů. Pokud není uvedeno jinak, nástroj xsltc.exe používá název šablony stylů pro názvy tříd a sestavení.

Příklady

Následující příklad ukazuje, jak načíst kompilovanou šablonu stylů ze sestavení XSLT. Příklad předpokládá, že nástroj xsltc.exe byl použit k vytvoření sestavení s názvem bookOrders.dll s třídou s názvem bookOrders.

Poznámka

Při kompilaci kódu musíte odkazovat na sestavení XSLT. Například, 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));  

Poznámky

Nástroj xsltc.exe slouží ke kompilaci šablon stylů a generování sestavení ze šablon stylů. Metoda načte Load zkompilovanou šablonu stylů ze sestavení.

Poznámka

Do aplikace musíte také zahrnout sestavení XSLT jako odkaz.

Viz také

Platí pro

Load(String)

Načte a zkompiluje šablonu stylů umístěnou v zadaném identifikátoru URI.

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

Parametry

stylesheetUri
String

Identifikátor URI šablony stylů.

Výjimky

Hodnota stylesheetUri je null.

Šablona stylů obsahuje chybu.

Šablonu stylů nelze najít.

Hodnota stylesheetUri obsahuje název souboru nebo adresář, který nelze najít.

Hodnotu stylesheetUri nelze přeložit.

-nebo- Při zpracování požadavku došlo k chybě.

stylesheetUri není platný identifikátor URI.

Při načítání šablony stylů došlo k chybě analýzy.

Příklady

Následující příklad provede transformaci a výstupy do souboru.

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

Poznámky

Třída XslCompiledTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat http://www.w3.org/1999/XSL/Transform obor názvů.

Tato metoda má následující chování:

  • Identifikátor XmlUrlResolver URI šablony stylů se nepoužívá bez přihlašovacích údajů uživatele a zpracovává všechny xsl:import prvky nebo xsl:include prvky šablony stylů.

  • K XmlReader načtení šablony stylů se používá výchozí nastavení. Zpracování DTD je zakázané na .XmlReader Pokud potřebujete zpracování DTD, vytvořte s touto funkcí povolenou XmlReader funkci a předejte ji metodě Load .

  • Funkce document() je zakázaná.

  • Vložené skripty nejsou podporovány.

Přetížení můžete použít Load(String, XsltSettings, XmlResolver) k zadání XmlResolver s potřebnými ověřovacími přihlašovacími údaji nebo k určení různých nastavení XSLT.

Viz také

Platí pro

Load(IXPathNavigable)

Zkompiluje šablonu stylů obsaženou v objektu 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)

Parametry

stylesheet
IXPathNavigable

Objekt implementuje IXPathNavigable rozhraní. V microsoft .NET Framework to může být buď (XmlNodeobvykle), XmlDocumentnebo XPathDocument obsahující šablonu stylů.

Výjimky

Hodnota stylesheet je null.

Šablona stylů obsahuje chybu.

Příklady

Následující příklad načte šablonu stylů obsaženou v objektu XPathDocument .

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

Poznámky

Třída XslCompiledTransform podporuje syntaxi XSLT 1.0. Šablona stylů XSLT musí používat http://www.w3.org/1999/XSL/Transform obor názvů.

Tato metoda má následující chování:

  • K XmlUrlResolver zpracování jakýchkoli prvků xsl:import nebo xsl:include prvků se používá bez uživatelských přihlašovacích údajů.

  • Funkce document() je zakázaná.

  • Vložené skripty nejsou podporovány.

Přetížení můžete použít Load k zadání XmlResolver s potřebnými ověřovacími přihlašovacími údaji nebo k určení různých nastavení XSLT.

Viz také

Platí pro