XslCompiledTransform Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Transformiert XML-Daten mithilfe eines XSLT-Stylesheets.
public ref class XslCompiledTransform sealed
public sealed class XslCompiledTransform
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
- Vererbung
-
XslCompiledTransform
Beispiele
Im folgenden Beispiel wird eine Transformation und Ausgabe in eine Datei ausgeführt.
// 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")
Das Beispiel verwendet die folgenden beiden Eingabedateien:
books.xml
<?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>
output.xsl
<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>
Hinweise
Die XslCompiledTransform Klasse ist ein XSLT-Prozessor, der die XSLT 1.0-Syntax unterstützt. Es ist eine neue Implementierung und umfasst Leistungsgewinne im Vergleich zur veralteten XslTransform Klasse. Die Struktur der XslCompiledTransform Klasse ähnelt der XslTransform Klasse sehr. Die Load Methode lädt und kompiliert das Stylesheet, während die Transform Methode die XSLT-Transformation ausführt.
Die Unterstützung für die XSLT-Funktion document()
und eingebettete Skriptblöcke sind standardmäßig deaktiviert. Diese Features können aktiviert werden, indem sie ein XsltSettings Objekt erstellen und an die Load Methode übergeben.
Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und der Migration aus der XslTransform-Klasse.
Sicherheitsüberlegungen
Beim Erstellen einer Anwendung, die die XslCompiledTransform-Klasse verwendet, sollten Ihnen die folgenden Elemente und deren Auswirkungen bekannt sein:
Die XSLT-Skriptverarbeitung ist standardmäßig deaktiviert. XSLT-Skripts sollten nur aktiviert werden, wenn eine Skriptunterstützung erforderlich ist und Sie mit einer vollständig vertrauenswürdigen Umgebung arbeiten.
Die XSLT-
document()
-Funktion ist standardmäßig deaktiviert. Wenn Sie diedocument()
-Funktion aktivieren, schränken Sie die verfügbaren Ressourcen ein, indem Sie der XmlSecureResolver-Methode ein Transform-Objekt übergeben.Erweiterungsobjekte sind standardmäßig aktiviert. Wenn der XsltArgumentList-Methode ein Transform-Objekt übergeben wird, das Erweiterungsobjekte enthält, so werden diese verwendet.
XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten. Ein böswilliger Benutzer kann dies ausnutzen, indem er Daten oder Stylesheets bereitstellt, deren Verarbeitung die Ressourcen des Computers erschöpft.
XSLT-Anwendungen, die in einer teilweise vertrauenswürdigen Umgebung ausgeführt werden, können einem Stylesheet-Spoofing ausgesetzt sein. Ein böswilliger Benutzer könnte z. B. ein Objekt mit einem schädlichen Stylesheet laden und es an einen anderen Benutzer übermitteln, der die Transform-Methode aufruft und die Transformation ausführt.
Diese Sicherheitsprobleme können durch Deaktivieren von Skripts oder der document()
-Funktion bei aus nicht vertrauenswürdigen Quellen stammenden Stylesheets und durch das Abweisen von XslCompiledTransform-Objekten, XSLT-Stylesheets und XML-Quelldaten aus nicht vertrauernswürdigen Quellen reduziert werden.
Konstruktoren
XslCompiledTransform() |
Initialisiert eine neue Instanz der XslCompiledTransform-Klasse. |
XslCompiledTransform(Boolean) |
Initialisiert eine neue Instanz der XslCompiledTransform-Klasse mit der angegebenen Debugeinstellung. |
Eigenschaften
OutputSettings |
Ruft ein XmlWriterSettings-Objekt mit den Ausgabeinformationen ab, die vom |
TemporaryFiles |
Ruft die TempFileCollection ab, die die temporären Dateien enthält, die nach einem erfolgreichen Aufruf der Load-Methode auf dem Datenträger generiert werden. |
Methoden
CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Kompiliert ein XSLT-Stylesheet in einen angegebenen Typ. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
Load(IXPathNavigable) |
Kompiliert das im IXPathNavigable-Objekt enthaltene Stylesheet. |
Load(IXPathNavigable, XsltSettings, XmlResolver) |
Kompiliert das im IXPathNavigable enthaltene XSLT-Stylesheet. Der XmlResolver löst die vorhandenen |
Load(MethodInfo, Byte[], Type[]) |
Lädt eine Methode aus einem Stylesheet, das mit |
Load(String) |
Lädt und kompiliert das am angegebenen URI abgelegte Stylesheet. |
Load(String, XsltSettings, XmlResolver) |
Lädt und kompiliert das vom URI angegebene XSLT-Stylesheet. Der XmlResolver löst die vorhandenen |
Load(Type) |
Lädt das kompilierte Stylesheet, das mit dem XSLT-Compiler (xsltc.exe) erstellt wurde. |
Load(XmlReader) |
Kompiliert das im XmlReader enthaltene Stylesheet. |
Load(XmlReader, XsltSettings, XmlResolver) |
Kompiliert das im XmlReader enthaltene XSLT-Stylesheet. Der XmlResolver löst die vorhandenen |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Transform(IXPathNavigable, XmlWriter) |
Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. |
Transform(IXPathNavigable, XsltArgumentList, Stream) |
Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen Stream aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit, und der XmlResolver löst die XSLT- |
Transform(String, String) |
Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse in eine Datei aus. |
Transform(String, XmlWriter) |
Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. |
Transform(String, XsltArgumentList, Stream) |
Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen Stream aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(String, XsltArgumentList, TextWriter) |
Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus. |
Transform(String, XsltArgumentList, XmlWriter) |
Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(XmlReader, XmlWriter) |
Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. |
Transform(XmlReader, XsltArgumentList, Stream) |
Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen Stream aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(XmlReader, XsltArgumentList, TextWriter) |
Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(XmlReader, XsltArgumentList, XmlWriter) |
Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit. |
Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit, und der XmlResolver löst die |
Gilt für
Threadsicherheit
Das XslCompiledTransform Objekt ist threadsicher, nachdem es geladen wurde. Mit anderen Worten, nachdem die Methode erfolgreich abgeschlossen wurde, kann die Load Transform Methode gleichzeitig von mehreren Threads aufgerufen werden.
Wenn die Load Methode erneut in einem Thread aufgerufen wird, während die Methode in einem anderen Thread aufgerufen wird, wird Transform der Transform Aufruf abgeschlossen, indem der XslCompiledTransform alte Zustand weiterhin verwendet wird. Der neue Zustand wird verwendet, wenn die Load Methode erfolgreich abgeschlossen wird.
Die Load Methode ist nicht threadsicher, wenn sie gleichzeitig von mehreren Threads aufgerufen wird.