XslCompiledTransform.Load Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 |
Load(String, XsltSettings, XmlResolver) |
Načte a zkompiluje šablonu stylů XSLT určenou identifikátorem URI. Vyřeší XmlResolver všechny prvky |
Load(MethodInfo, Byte[], Type[]) |
Načte metodu ze šablony stylů zkompilované pomocí |
Load(XmlReader, XsltSettings, XmlResolver) |
Zkompiluje šablonu stylů XSLT obsaženou v souboru XmlReader. Vyřeší XmlResolver všechny prvky |
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.
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
- 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
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
neboxsl: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é
- Nástroj sestavení XSLT (xsltc.exe)
- Postupy: Provedení transformace XSLT pomocí sestavení
- Používání třídy XslCompiledTransform
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.
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 neboxsl: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
neboxsl: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.