Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
XslCompiledTransform-Klasse
Transformiert XML-Daten mithilfe eines XSLT-Stylesheets.
Assembly: System.Xml (in System.Xml.dll)
Der XslCompiledTransform-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
XslCompiledTransform() | Initialisiert eine neue Instanz der XslCompiledTransform-Klasse. |
|
XslCompiledTransform(Boolean) | Initialisiert eine neue Instanz der XslCompiledTransform-Klasse mit der angegebenen Debugeinstellung. |
| Name | Beschreibung | |
|---|---|---|
|
OutputSettings | Ruft ein XmlWriterSettings-Objekt mit den Ausgabeinformationen ab, die vom xsl:output-Element des Stylesheets abgeleitet sind. |
|
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. |
| Name | Beschreibung | |
|---|---|---|
|
CompileToType | Kompiliert ein XSLT-Stylesheet in einen angegebenen Typ. |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
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.) |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
Load(IXPathNavigable) | Kompiliert das im IXPathNavigable-Objekt enthaltene Stylesheet. |
|
Load(String) | Lädt und kompiliert das am angegebenen URI abgelegte Stylesheet. |
|
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(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. |
|
Load(MethodInfo, Byte[], Type[]) | Lädt eine Methode aus einem Stylesheet, das mit XSLTC.exe kompiliert wurde. |
|
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. |
|
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. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
|
Transform(IXPathNavigable, XmlWriter) | Führt die Transformation anhand des vom IXPathNavigable-Objekt angegebenen Eingabedokuments aus und gibt die Ergebnisse an einen XmlWriter aus. |
|
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(XmlReader, XmlWriter) | Führt die Transformation anhand des vom XmlReader-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(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, 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(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. |
|
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. |
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.
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>
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
|
|---|
|
Wenn die Load-Methode von mehreren Threads gleichzeitig aufgerufen wird, ist sie nicht threadsicher. |
Hinweis