XslCompiledTransform Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengubah data XML menggunakan lembar gaya XSLT.
public ref class XslCompiledTransform sealed
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")]
public sealed class XslCompiledTransform
public sealed class XslCompiledTransform
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("XslCompiledTransform requires dynamic code because it generates IL at runtime.")>]
type XslCompiledTransform = class
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
- Warisan
-
XslCompiledTransform
- Atribut
Contoh
Contoh berikut menjalankan transformasi dan output ke 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")
Sampel menggunakan dua file input berikut:
<?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>
<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>
Keterangan
Kelas XslCompiledTransform adalah prosesor XSLT yang mendukung sintaks XSLT 1.0. Ini adalah implementasi baru dan mencakup perolehan performa jika dibandingkan dengan kelas usang XslTransform . Struktur kelas XslCompiledTransform sangat mirip dengan kelas XslTransform. Metode Load memuat dan mengompilasi lembar gaya, sementara metode Transform menjalankan transformasi XSLT.
Dukungan untuk fungsi XSLT document() dan blok skrip yang disematkan dinonaktifkan secara default. Fitur-fitur ini dapat diaktifkan dengan membuat XsltSettings objek dan meneruskannya ke Load metode .
Untuk informasi selengkapnya, lihat Menggunakan Kelas XslCompiledTransform dan Migrasi Dari Kelas XslTransform.
Pertimbangan keamanan
Saat membuat aplikasi yang menggunakan XslCompiledTransform kelas , Anda harus mengetahui item berikut dan implikasinya:
Pembuatan skrip XSLT dinonaktifkan secara default. Pembuatan skrip XSLT harus diaktifkan hanya jika Anda memerlukan dukungan skrip dan Anda bekerja di lingkungan yang sepenuhnya tepercaya.
Fungsi XSLT
document()dinonaktifkan secara default. Jika Anda mengaktifkandocument()fungsi, batasi sumber daya yang dapat diakses dengan meneruskan ThrowingResolver ke Transform metode .Objek ekstensi diaktifkan secara default. Jika objek XsltArgumentList yang berisi objek ekstensi diteruskan ke metode Transform, objek tersebut akan digunakan.
Lembar gaya XSLT dapat menyertakan referensi ke file lain dan blok skrip yang disematkan. Pengguna berbahaya dapat mengeksploitasi ini dengan memberi Anda lembar data atau gaya yang ketika dijalankan dapat menyebabkan sistem Anda memproses hingga komputer kehabisan sumber daya.
Aplikasi XSLT yang berjalan di lingkungan kepercayaan yang bervariasi dapat mengakibatkan penyamaran lembar gaya. Misalnya, pengguna berbahaya dapat memuat objek dengan lembar gaya berbahaya dan menyerahkannya kepada pengguna lain yang kemudian memanggil Transform metode dan menjalankan transformasi.
Masalah keamanan ini dapat dimitigasi dengan tidak mengaktifkan pembuatan skrip atau document() fungsi kecuali lembar gaya berasal dari sumber tepercaya, dan dengan tidak menerima XslCompiledTransform objek, lembar gaya XSLT, atau data sumber XML dari sumber yang tidak tepercaya.
Konstruktor
| Nama | Deskripsi |
|---|---|
| XslCompiledTransform() |
Menginisialisasi instans baru dari kelas XslCompiledTransform. |
| XslCompiledTransform(Boolean) |
Menginisialisasi instans XslCompiledTransform baru kelas dengan pengaturan debug yang ditentukan. |
Properti
| Nama | Deskripsi |
|---|---|
| OutputSettings |
XmlWriterSettings Mendapatkan objek yang berisi informasi output yang berasal dari |
| TemporaryFiles |
TempFileCollection Mendapatkan yang berisi file sementara yang dihasilkan pada disk setelah panggilan berhasil ke Load metode . |
Metode
| Nama | Deskripsi |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Mengkompilasi lembar gaya XSLT ke jenis tertentu. |
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
Mengkompilasi lembar gaya XSLT yang terkandung dalam IXPathNavigable.
XmlResolver menyelesaikan XSLT |
| Load(IXPathNavigable) |
Mengkompilasi lembar gaya yang terkandung dalam IXPathNavigable objek. |
| Load(MethodInfo, Byte[], Type[]) |
Memuat metode dari lembar gaya yang dikompilasi |
| Load(String, XsltSettings, XmlResolver) |
Memuat dan mengkompilasi lembar gaya XSLT yang ditentukan oleh URI.
XmlResolver menyelesaikan XSLT |
| Load(String) |
Memuat dan mengkompilasi lembar gaya yang terletak di URI yang ditentukan. |
| Load(Type) |
Memuat lembar gaya terkompilasi yang dibuat menggunakan Pengkompilasi XSLT (xsltc.exe). |
| Load(XmlReader, XsltSettings, XmlResolver) |
Mengkompilasi lembar gaya XSLT yang terkandung dalam XmlReader.
XmlResolver menyelesaikan XSLT |
| Load(XmlReader) |
Mengkompilasi lembar gaya yang terkandung dalam XmlReader. |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
| Transform(IXPathNavigable, XmlWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh IXPathNavigable objek dan menghasilkan hasilnya ke XmlWriter. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh IXPathNavigable objek dan menghasilkan hasil ke aliran. menyediakan XsltArgumentList argumen runtime tambahan. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh IXPathNavigable objek dan menghasilkan hasilnya ke TextWriter. menyediakan XsltArgumentList argumen run-time tambahan. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Menjalankan transformasi dengan menggunakan dokumen input yang ditentukan oleh IXPathNavigable objek dan menghasilkan hasil ke XmlWriter.
XsltArgumentList menyediakan argumen run-time tambahan dan XmlResolver menyelesaikan fungsi XSLT |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh IXPathNavigable objek dan menghasilkan hasilnya ke XmlWriter. menyediakan XsltArgumentList argumen run-time tambahan. |
| Transform(String, String) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh URI dan menghasilkan hasil ke file. |
| Transform(String, XmlWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh URI dan menghasilkan hasilnya ke XmlWriter. |
| Transform(String, XsltArgumentList, Stream) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh URI dan menghasilkan hasil untuk streaming. menyediakan XsltArgumentList argumen run-time tambahan. |
| Transform(String, XsltArgumentList, TextWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh URI dan menghasilkan hasilnya ke TextWriter. |
| Transform(String, XsltArgumentList, XmlWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh URI dan menghasilkan hasilnya ke XmlWriter. menyediakan XsltArgumentList argumen run-time tambahan. |
| Transform(XmlReader, XmlWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh XmlReader objek dan menghasilkan hasilnya ke XmlWriter. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh XmlReader objek dan menghasilkan hasil ke aliran. menyediakan XsltArgumentList argumen run-time tambahan. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh XmlReader objek dan menghasilkan hasilnya ke TextWriter. menyediakan XsltArgumentList argumen run-time tambahan. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh XmlReader objek dan menghasilkan hasilnya ke XmlWriter.
XsltArgumentList menyediakan argumen run-time tambahan dan XmlResolver menyelesaikan fungsi XSLT |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
Menjalankan transformasi menggunakan dokumen input yang ditentukan oleh XmlReader objek dan menghasilkan hasilnya ke XmlWriter. menyediakan XsltArgumentList argumen run-time tambahan. |
Berlaku untuk
Keamanan Thread
Objek XslCompiledTransform aman utas setelah dimuat. Dengan kata lain, setelah Load metode berhasil diselesaikan, Transform metode dapat dipanggil secara bersamaan dari beberapa utas.
Jika metode dipanggil Load lagi dalam satu utas saat Transform metode sedang dipanggil di utas lain, XslCompiledTransform objek selesai menjalankan Transform panggilan dengan terus menggunakan status lama. Status baru digunakan ketika Load metode berhasil diselesaikan.
Metode Load ini tidak aman utas ketika dipanggil secara bersamaan dari beberapa utas.