Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
0 von 1 fanden dies hilfreich - 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.

  NameBeschreibung
Öffentliche MethodeXslCompiledTransform()Initialisiert eine neue Instanz der XslCompiledTransform-Klasse.
Öffentliche MethodeXslCompiledTransform(Boolean)Initialisiert eine neue Instanz der XslCompiledTransform-Klasse mit der angegebenen Debugeinstellung.
Zum Seitenanfang
  NameBeschreibung
Öffentliche EigenschaftOutputSettingsRuft ein XmlWriterSettings-Objekt mit den Ausgabeinformationen ab, die vom xsl:output-Element des Stylesheets abgeleitet sind.
Öffentliche EigenschaftTemporaryFilesRuft 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
  NameBeschreibung
Öffentliche MethodeStatischer MemberCompileToTypeKompiliert ein XSLT-Stylesheet in einen angegebenen Typ.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeLoad(IXPathNavigable)Kompiliert das im IXPathNavigable-Objekt enthaltene Stylesheet.
Öffentliche MethodeLoad(String)Lädt und kompiliert das am angegebenen URI abgelegte Stylesheet.
Öffentliche MethodeLoad(Type)Lädt das kompilierte Stylesheet, das mit dem XSLT Assembly Tool (xsltc.exe) erstellt wurde.
Öffentliche MethodeLoad(XmlReader)Kompiliert das im XmlReader enthaltene Stylesheet.
Öffentliche MethodeLoad(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 MethodeLoad(MethodInfo, Byte[], Type[])Lädt eine Methode aus einem Stylesheet, das mit XSLTC.exe kompiliert wurde.
Öffentliche MethodeLoad(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 MethodeLoad(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.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeTransform(IXPathNavigable, XmlWriter)Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.
Öffentliche MethodeTransform(String, String)Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse in eine Datei aus.
Öffentliche MethodeTransform(String, XmlWriter)Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.
Öffentliche MethodeTransform(XmlReader, XmlWriter)Führt die Transformation anhand des vom XmlReader-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus.
Öffentliche MethodeTransform(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 MethodeTransform(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 MethodeTransform(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 MethodeTransform(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 MethodeTransform(String, XsltArgumentList, TextWriter)Führt die Transformation anhand des vom URI angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen TextWriter aus.
Öffentliche MethodeTransform(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 MethodeTransform(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 MethodeTransform(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 MethodeTransform(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 MethodeTransform(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 MethodeTransform(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 Using the XsltCompiledTransform Class und Migrating From the XslTransform Class.

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.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.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.

HinweisHinweis

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

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.