Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

XslCompiledTransform-Klasse

Transformiert XML-Daten mithilfe eines XSLT-Stylesheets.

System.Object
  System.Xml.Xsl.XslCompiledTransform

Namespace:  System.Xml.Xsl
Assembly:  System.Xml (in System.Xml.dll)
public sealed class XslCompiledTransform

Der XslCompiledTransform-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode XslCompiledTransform() Initialisiert eine neue Instanz der XslCompiledTransform-Klasse.
Öffentliche Methode XslCompiledTransform(Boolean) Initialisiert eine neue Instanz der XslCompiledTransform-Klasse mit der angegebenen Debugeinstellung.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Eigenschaft OutputSettings Ruft ein XmlWriterSettings-Objekt mit den Ausgabeinformationen ab, die vom xsl:output-Element des Stylesheets abgeleitet sind.
Öffentliche Eigenschaft 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.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode Statischer Member CompileToType Kompiliert ein XSLT-Stylesheet in einen angegebenen Typ.
Öffentliche Methode Equals(Object) Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte Methode Finalize Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.)
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Load(IXPathNavigable) Kompiliert das im IXPathNavigable-Objekt enthaltene Stylesheet.
Öffentliche Methode Load(String) Lädt und kompiliert das am angegebenen URI abgelegte Stylesheet.
Öffentliche Methode Load(Type) Lädt das kompilierte Stylesheet, das mit dem XSLT-Compiler (xsltc.exe) erstellt wurde.
Öffentliche Methode Load(XmlReader) Kompiliert das im XmlReader enthaltene Stylesheet.
Öffentliche Methode Load(IXPathNavigable, XsltSettings, XmlResolver) Kompiliert das im IXPathNavigable enthaltene XSLT-Stylesheet. Der XmlResolver löst die vorhandenen import-XSLT-Elemente und includeXSLT-Elemente auf, und die XSLT-Einstellungen legen die Berechtigungen für das Stylesheet fest.
Öffentliche Methode Load(MethodInfo, Byte[], Type[]) Lädt eine Methode aus einem Stylesheet, das mit XSLTC.exe kompiliert wurde.
Öffentliche Methode Load(String, XsltSettings, XmlResolver) Lädt und kompiliert das vom URI angegebene XSLT-Stylesheet. Der XmlResolver löst die vorhandenen import-XSLT-Elemente und includeXSLT-Elemente auf, und die XSLT-Einstellungen legen die Berechtigungen für das Stylesheet fest.
Öffentliche Methode Load(XmlReader, XsltSettings, XmlResolver) Kompiliert das im XmlReader enthaltene XSLT-Stylesheet. Der XmlResolver löst die vorhandenen import-XSLT-Elemente und includeXSLT-Elemente auf, und die XSLT-Einstellungen legen die Berechtigungen für das Stylesheet fest.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode Transform(IXPathNavigable, XmlWriter) Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.
Öffentliche Methode Transform(String, String) Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse in eine Datei aus.
Öffentliche Methode Transform(String, XmlWriter) Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.
Öffentliche Methode Transform(XmlReader, XmlWriter) Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode Transform(String, XsltArgumentList, TextWriter) Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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-document()-Funktion auf.
Öffentliche Methode 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 document()-XSLT-Funktion auf.
Zum Seitenanfang

Die XslCompiledTransform-Klasse ist ein XSLT-Prozessor, der die XSLT 1.0 Syntax unterstützt. Dies ist eine neue Implementierung, die im Vergleich zur veralteten XslTransform-Klasse die Leistung verbessert. Die Struktur der XslCompiledTransform-Klasse ist der XslTransform-Klasse sehr ähnlich. 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-document()-Funktion und für eingebettete Skriptblöcke ist standardmäßig deaktiviert. Sie aktivieren diese Features, indem Sie ein XsltSettings-Objekt erstellen und dieses an die Load-Methode übergeben.

Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und Migrieren von der XslTransform-Klasse.

Sicherheitsüberlegungen

Bei der Erstellung einer Anwendung, die die XslCompiledTransform-Klasse verwendet, sollten Ihnen die folgenden Elemente und deren Bedeutung bekannt sein:

  • XSLT-Skripts sind standardmäßig deaktiviert. XSLT-Skripts sollten nur aktiviert werden, wenn die Skriptunterstützung erforderlich ist und die Umgebung vollständig vertrauenswürdig ist.

  • Die XSLT-document()-Funktion ist standardmäßig deaktiviert. Wenn Sie die document()-Funktion aktivieren, schränken Sie die Ressourcen ein, auf die durch Übergeben eines XmlSecureResolver-Objekts an die Transform-Methode zugegriffen werden kann.

  • Erweiterungsobjekte sind in der Standardeinstellung aktiviert. Wenn ein XsltArgumentList-Objekt, das Erweiterungsobjekte enthält, an die Transform-Methode übergeben wird, werden diese verwendet.

  • XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten. Böswillige Benutzer können dies ausnutzen und Ihnen Daten oder Stylesheets zukommen lassen, die bei der Ausführung im System eine Verarbeitungslast bis zur Erschöpfung der Ressourcen erzeugen.

  • XSLT-Anwendungen, die in einer Umgebung mit unterschiedlichen Vertrauensebenen ausgeführt werden, können zu Stylesheetspoofing führen. So kann z. B. ein böswilliger Benutzer ein Objekt mit einem schädlichen Stylesheet laden und an einen anderen Benutzer übergeben, der anschließend die Transform-Methode aufruft und die Transformation ausführt.

Sie umgehen solche Sicherheitsprobleme, indem Sie Skripts oder die document()-Funktion deaktivieren, sofern das Stylesheet nicht von einer vertrauenswürdigen Quelle stammt, und indem Sie XslCompiledTransform-Objekte, XSLT-Stylesheets und XML-Quelldaten aus nicht vertrauendwürdigen Quellen nicht akzeptieren.

Im folgenden Beispiel wird eine Transformation ausgeführt, und die Ergebnisse werden in eine Datei ausgegeben.


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


Im Beispiel werden die folgenden beiden Eingabedateien verwendet:

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>


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Das XslCompiledTransform-Objekt ist nach dem Ladevorgang threadsicher. Das bedeutet, dass die Transform-Methode nach erfolgreichem Abschluss der Load-Methode von mehreren Threads gleichzeitig aufgerufen werden kann.

Wenn die Load-Methode erneut in einem Thread aufgerufen wird, während die Transform-Methode in einem anderen Thread aufgerufen wird, schließt das XslCompiledTransform-Objekt die Ausführung des Transform-Aufrufs unter Weiterverwendung des alten Zustands ab. Der neue Zustand wird nach erfolgreichem Abschluss der Load-Methode verwendet.

Hinweis Hinweis

Wenn die Load-Methode von mehreren Threads gleichzeitig aufgerufen wird, ist sie nicht threadsicher.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?