XslCompiledTransform Klasse

Definition

Transformiert XML-Daten mithilfe eines XSLT-Stylesheets.Transforms XML data using an XSLT style sheet.

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 ausgeführt und in eine Datei ausgegeben.The following example executes a transform and outputs to a file.

// 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:The sample uses the following two input files:

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.The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax. Dabei handelt es sich um eine neue Implementierung, die im Vergleich mit der veralteten XslTransform Klasse Leistungssteigerungen bietet.It is a new implementation and includes performance gains when compared to the obsolete XslTransform class. Die Struktur der XslCompiledTransform-Klasse ähnelt der XslTransform-Klasse.The structure of the XslCompiledTransform class is very similar to the XslTransform class. Die Load-Methode lädt das Stylesheet und kompiliert es, während die Transform-Methode die XSLT-Transformation ausführt.The Load method loads and compiles the style sheet, while the Transform method executes the XSLT transform.

Die Unterstützung für die XSLT-document() Funktion und eingebettete Skriptblöcke sind standardmäßig deaktiviert.Support for the XSLT document() function and embedded script blocks are disabled by default. Diese Funktionen können aktiviert werden, indem ein XsltSettings Objekt erstellt und an die Load-Methode übergeben wird.These features can be enabled by creating an XsltSettings object and passing it to the Load method.

Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und Migrieren von der XslTransform-Klasse.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.

Überlegungen zur SicherheitSecurity Considerations

Beim Erstellen einer Anwendung, die die XslCompiledTransform-Klasse verwendet, sollten Ihnen die folgenden Elemente und deren Auswirkungen bekannt sein:When creating an application that uses the XslCompiledTransform class, you should be aware of the following items and their implications:

  • Die XSLT-Skriptverarbeitung ist standardmäßig deaktiviert.XSLT scripting is disabled by default. XSLT-Skripts sollten nur aktiviert werden, wenn eine Skriptunterstützung erforderlich ist und Sie mit einer vollständig vertrauenswürdigen Umgebung arbeiten.XSLT scripting should be enabled only if you require script support and you are working in a fully trusted environment.

  • Die XSLT-document()-Funktion ist standardmäßig deaktiviert.The XSLT document() function is disabled by default. Wenn Sie die document()-Funktion aktivieren, schränken Sie die verfügbaren Ressourcen ein, indem Sie der XmlSecureResolver-Methode ein Transform-Objekt übergeben.If you enable the document() function, restrict the resources that can be accessed by passing an XmlSecureResolver object to the Transform method.

  • Erweiterungsobjekte sind standardmäßig aktiviert.Extension objects are enabled by default. Wenn der XsltArgumentList-Methode ein Transform-Objekt übergeben wird, das Erweiterungsobjekte enthält, so werden diese verwendet.If an XsltArgumentList object containing extension objects is passed to the Transform method, they are utilized.

  • XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten.XSLT style sheets can include references to other files and embedded script blocks. Ein böswilliger Benutzer kann dies ausnutzen, indem er Daten oder Stylesheets bereitstellt, deren Verarbeitung die Ressourcen des Computers erschöpft.A malicious user can exploit this by supplying you with data or style sheets that when executed can cause your system to process until the computer runs low on resources.

  • XSLT-Anwendungen, die in einer teilweise vertrauenswürdigen Umgebung ausgeführt werden, können einem Stylesheet-Spoofing ausgesetzt sein.XSLT applications that run in a mixed trust environment can result in style sheet spoofing. 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.For example, a malicious user can load an object with a harmful style sheet and hand it off to another user who subsequently calls the Transform method and executes the transformation.

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.These security issues can be mitigated by not enabling scripting or the document() function unless the style sheet comes from a trusted source, and by not accepting XslCompiledTransform objects, XSLT style sheets, or XML source data from an untrusted source.

Konstruktoren

XslCompiledTransform()

Initialisiert eine neue Instanz der XslCompiledTransform-Klasse.Initializes a new instance of the XslCompiledTransform class.

XslCompiledTransform(Boolean)

Initialisiert eine neue Instanz der XslCompiledTransform-Klasse mit der angegebenen Debugeinstellung.Initializes a new instance of the XslCompiledTransform class with the specified debug setting.

Eigenschaften

OutputSettings

Ruft ein XmlWriterSettings-Objekt mit den Ausgabeinformationen ab, die vom xsl:output-Element des Stylesheets abgeleitet sind.Gets an XmlWriterSettings object that contains the output information derived from the xsl:output element of the style sheet.

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.Gets the TempFileCollection that contains the temporary files generated on disk after a successful call to the Load method.

Methoden

CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String)

Kompiliert ein XSLT-Stylesheet in einen angegebenen Typ.Compiles an XSLT style sheet to a specified type.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
Load(IXPathNavigable)

Kompiliert das im IXPathNavigable-Objekt enthaltene Stylesheet.Compiles the style sheet contained in the IXPathNavigable object.

Load(IXPathNavigable, XsltSettings, XmlResolver)

Kompiliert das im IXPathNavigable enthaltene XSLT-Stylesheet.Compiles the XSLT style sheet contained in the IXPathNavigable. Der XmlResolver löst die vorhandenen import-XSLT-Elemente und include-XSLT-Elemente auf, und die XSLT-Einstellungen legen die Berechtigungen für das Stylesheet fest.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

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

Lädt eine Methode aus einem Stylesheet, das mit XSLTC.exe kompiliert wurde.Loads a method from a style sheet compiled using the XSLTC.exe utility.

Load(String)

Lädt und kompiliert das am angegebenen URI abgelegte Stylesheet.Loads and compiles the style sheet located at the specified URI.

Load(String, XsltSettings, XmlResolver)

Lädt und kompiliert das vom URI angegebene XSLT-Stylesheet.Loads and compiles the XSLT style sheet specified by the URI. Der XmlResolver löst die vorhandenen import-XSLT-Elemente und include-XSLT-Elemente auf, und die XSLT-Einstellungen legen die Berechtigungen für das Stylesheet fest.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

Load(Type)

Lädt das kompilierte Stylesheet, das mit dem XSLT-Compiler (xsltc.exe) erstellt wurde.Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).

Load(XmlReader)

Kompiliert das im XmlReader enthaltene Stylesheet.Compiles the style sheet contained in the XmlReader.

Load(XmlReader, XsltSettings, XmlResolver)

Kompiliert das im XmlReader enthaltene XSLT-Stylesheet.Compiles the XSLT style sheet contained in the XmlReader. Der XmlResolver löst die vorhandenen import-XSLT-Elemente und include-XSLT-Elemente auf, und die XSLT-Einstellungen legen die Berechtigungen für das Stylesheet fest.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(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.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream)

Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen Stream aus.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to a stream. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional runtime arguments.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an TextWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

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.Executes the transform by using the input document that is specified by the IXPathNavigable object and outputs the results to an XmlWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit, und der XmlResolver löst die XSLT-document()-Funktion auf.The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Transform(String, String)

Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse in eine Datei aus.Executes the transform using the input document specified by the URI and outputs the results to a file.

Transform(String, XmlWriter)

Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter.

Transform(String, XsltArgumentList, Stream)

Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen Stream aus.Executes the transform using the input document specified by the URI and outputs the results to stream. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

Transform(String, XsltArgumentList, TextWriter)

Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus.Executes the transform using the input document specified by the URI and outputs the results to a TextWriter.

Transform(String, XsltArgumentList, XmlWriter)

Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XmlWriter)

Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream)

Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen Stream aus.Executes the transform using the input document specified by the XmlReader object and outputs the results to a stream. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, TextWriter)

Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus.Executes the transform using the input document specified by the XmlReader object and outputs the results to a TextWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter)

Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit.The XsltArgumentList provides additional run-time arguments.

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.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. Die XsltArgumentList stellt zusätzliche Laufzeitargumente bereit, und der XmlResolver löst die document()-XSLT-Funktion auf.The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Gilt für:

Threadsicherheit

Das XslCompiledTransform Objekt ist Thread sicher, sobald es geladen wurde.The XslCompiledTransform object is thread safe once it has been loaded. Anders ausgedrückt: Nachdem die Load-Methode erfolgreich abgeschlossen wurde, kann die Transform-Methode gleichzeitig von mehreren Threads aufgerufen werden.In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.

Wenn die Load-Methode in einem Thread erneut aufgerufen wird, während die Transform-Methode in einem anderen Thread aufgerufen wird, beendet das XslCompiledTransform-Objekt die Ausführung des Transform Aufrufs, indem der alte Status weiterhin verwendet wird.If the Load method is called again in one thread while the Transform method is being called in another thread, the XslCompiledTransform object finishes executing the Transform call by continuing to use the old state. Der neue Status wird verwendet, wenn die Load-Methode erfolgreich abgeschlossen wurde.The new state is used when the Load method successfully completes.


Die Load-Methode ist nicht Thread sicher, wenn Sie gleichzeitig von mehreren Threads aufgerufen wird.The Load method is not thread safe when called simultaneously from multiple threads.

Siehe auch