XslCompiledTransform XslCompiledTransform XslCompiledTransform XslCompiledTransform Class

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
XslCompiledTransformXslCompiledTransformXslCompiledTransformXslCompiledTransform

Beispiele

Im folgende Beispiel führt eine Transformation, und es gibt in einer Datei.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, die XSLT 1.0-Syntax unterstützt.The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax. Es ist eine neue Implementierung, und enthält leistungsverbesserungen im Vergleich zu den veralteten XslTransform Klasse.It is a new implementation and includes performance gains when compared to the obsolete XslTransform class. Die Struktur der XslCompiledTransform Klasse ähnelt sehr der XslTransform Klasse.The structure of the XslCompiledTransform class is very similar to the XslTransform class. Die Load Methode lädt und kompiliert das Stylesheet Stylesheets, während die Transform Methode führt die XSLT-Transformation.The Load method loads and compiles the style sheet, while the Transform method executes the XSLT transform.

Unterstützung der XSLT document() -Funktion und eingebetteter Skriptblöcke sind standardmäßig deaktiviert.Support for the XSLT document() function and embedded script blocks are disabled by default. Diese Features können aktiviert werden, durch das Erstellen einer XsltSettings Objekt und übergibt dieses an die Load Methode.These features can be enabled by creating an XsltSettings object and passing it to the Load method.

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

SicherheitsüberlegungenSecurity 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() XslCompiledTransform() XslCompiledTransform() XslCompiledTransform()

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

XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) 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 OutputSettings OutputSettings 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 TemporaryFiles TemporaryFiles 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) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) 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) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als die Standardhashfunktion. Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable)

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

Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) 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[]) Load(MethodInfo, Byte[], Type[]) Load(MethodInfo, Byte[], Type[]) 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) Load(String) Load(String) 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) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) 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) Load(Type) Load(Type) 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) Load(XmlReader) Load(XmlReader) Load(XmlReader)

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

Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) 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() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)
Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) 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) Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) 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) Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) 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) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) 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) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) 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) Transform(String, String) Transform(String, String) 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) Transform(String, XmlWriter) Transform(String, XmlWriter) 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) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) 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) Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) 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) Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) 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) Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter) 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) Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) 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) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) 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) Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) 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) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) 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

Die XslCompiledTransform -Objekt threadsicher ist, sobald sie geladen wurde.The XslCompiledTransform object is thread safe once it has been loaded. Das heißt, nach der Load Methode wurde erfolgreich abgeschlossen wurde, die Transform Methode von mehreren Threads gleichzeitig aufgerufen werden kann.In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.

Wenn die Load -Methode erneut aufgerufen wird, in einem Thread, während die Transform Methode in einem anderen Thread aufgerufen wird die XslCompiledTransform Objekt beendet wird, Ausführen der Transform aufrufen, indem Sie Sie weiterhin den alten Status verwenden.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 ausgeführt wird.The new state is used when the Load method successfully completes.

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

Siehe auch