XslCompiledTransform Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Transformerar XML-data med hjälp av ett XSLT-formatmallar.
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
- Arv
-
XslCompiledTransform
- Attribut
Exempel
I följande exempel körs en transformering och utdata till en fil.
// 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")
Exemplet använder följande två indatafiler:
<?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>
Kommentarer
Klassen XslCompiledTransform är en XSLT-processor som stöder XSLT 1.0-syntaxen. Det är en ny implementering och innehåller prestandavinster jämfört med den föråldrade XslTransform klassen. Klassens XslCompiledTransform struktur är mycket lik XslTransform klassen. Metoden Load laddar och kompilerar formatmallen, medan metoden Transform kör XSLT-transformeringen.
Stöd för XSLT-funktionen document() och inbäddade skriptblock är inaktiverade som standard. Dessa funktioner kan aktiveras genom att skapa ett XsltSettings objekt och skicka det till Load metoden.
Mer information finns i Använda klassen XslCompiledTransform och Migrera från klassen XslTransform.
Säkerhetsfrågor
När du skapar ett program som använder XslCompiledTransform klassen bör du vara medveten om följande objekt och deras konsekvenser:
XSLT-skript är inaktiverat som standard. XSLT-skript ska endast aktiveras om du behöver skriptstöd och arbetar i en fullständigt betrodd miljö.
XSLT-funktionen
document()är inaktiverad som standard. Om du aktiverardocument()funktionen begränsar du de resurser som kan nås genom att skicka ThrowingResolver till Transform metoden.Tilläggsobjekt är aktiverade som standard. Om ett XsltArgumentList objekt som innehåller tilläggsobjekt skickas till Transform metoden används de.
XSLT-formatmallar kan innehålla referenser till andra filer och inbäddade skriptblock. En obehörig användare kan utnyttja detta genom att förse dig med data eller formatmallar som när de körs kan göra att systemet bearbetas tills datorn har ont om resurser.
XSLT-program som körs i en miljö med blandat förtroende kan resultera i förfalskning av formatmallar. En obehörig användare kan till exempel läsa in ett objekt med ett skadligt formatmallar och lämna över det till en annan användare som därefter anropar Transform metoden och kör omvandlingen.
Dessa säkerhetsproblem kan åtgärdas genom att inte aktivera skript eller document() funktionen såvida inte formatmallen kommer från en betrodd källa och genom att inte acceptera XslCompiledTransform objekt, XSLT-formatmallar eller XML-källdata från en ej betrodd källa.
Konstruktorer
| Name | Description |
|---|---|
| XslCompiledTransform() |
Initierar en ny instans av XslCompiledTransform klassen. |
| XslCompiledTransform(Boolean) |
Initierar en ny instans av XslCompiledTransform klassen med den angivna felsökningsinställningen. |
Egenskaper
| Name | Description |
|---|---|
| OutputSettings |
Hämtar ett XmlWriterSettings objekt som innehåller utdatainformationen som härleds från elementet |
| TemporaryFiles |
Hämtar som TempFileCollection innehåller de temporära filer som genereras på disken efter ett lyckat anrop till Load metoden. |
Metoder
| Name | Description |
|---|---|
| CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) |
Kompilerar en XSLT-formatmall till en angiven typ. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| Load(IXPathNavigable, XsltSettings, XmlResolver) |
Kompilerar XSLT-formatmallen IXPathNavigablesom finns i . Löser XmlResolver alla XSLT |
| Load(IXPathNavigable) |
Kompilerar formatmallen IXPathNavigable som finns i objektet. |
| Load(MethodInfo, Byte[], Type[]) |
Läser in en metod från en formatmall som kompilerats med hjälp av |
| Load(String, XsltSettings, XmlResolver) |
Läser in och kompilerar XSLT-formatmallen som anges av URI:n. Löser XmlResolver alla XSLT |
| Load(String) |
Läser in och kompilerar formatmallen som finns på den angivna URI:n. |
| Load(Type) |
Läser in det kompilerade formatmallen som skapades med hjälp av XSLT-kompilatorn (xsltc.exe). |
| Load(XmlReader, XsltSettings, XmlResolver) |
Kompilerar XSLT-formatmallen XmlReadersom finns i . Löser XmlResolver alla XSLT |
| Load(XmlReader) |
Kompilerar formatmallen XmlReadersom finns i . |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| Transform(IXPathNavigable, XmlWriter) |
Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en XmlWriter. |
| Transform(IXPathNavigable, XsltArgumentList, Stream) |
Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en dataström. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(IXPathNavigable, XsltArgumentList, TextWriter) |
Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en TextWriter. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) |
Kör transformeringen med hjälp av indatadokumentet som anges av IXPathNavigable objektet och matar ut resultatet till en XmlWriter.
XsltArgumentList Innehåller ytterligare körningsargument och XmlResolver löser XSLT-funktionen |
| Transform(IXPathNavigable, XsltArgumentList, XmlWriter) |
Kör transformeringen med hjälp av indatadokumentet IXPathNavigable som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(String, String) |
Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en fil. |
| Transform(String, XmlWriter) |
Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en XmlWriter. |
| Transform(String, XsltArgumentList, Stream) |
Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet som ska strömmas. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(String, XsltArgumentList, TextWriter) |
Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en TextWriter. |
| Transform(String, XsltArgumentList, XmlWriter) |
Kör transformeringen med hjälp av indatadokumentet som anges av URI:n och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(XmlReader, XmlWriter) |
Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter. |
| Transform(XmlReader, XsltArgumentList, Stream) |
Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en dataström. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(XmlReader, XsltArgumentList, TextWriter) |
Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en TextWriter. XsltArgumentList Innehåller ytterligare körningsargument. |
| Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) |
Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter.
XsltArgumentList Innehåller ytterligare körningsargument och XmlResolver löser XSLT-funktionen |
| Transform(XmlReader, XsltArgumentList, XmlWriter) |
Kör transformeringen med hjälp av indatadokumentet XmlReader som angetts av objektet och matar ut resultatet till en XmlWriter. XsltArgumentList Innehåller ytterligare körningsargument. |
Gäller för
Trådsäkerhet
Objektet XslCompiledTransform är trådsäkert när det har lästs in. När metoden har slutförts Load kan metoden med andra ord Transform anropas samtidigt från flera trådar.
Load Om metoden anropas igen i en tråd medan Transform metoden anropas i en annan tråd XslCompiledTransform slutför objektet körningen av anropet Transform genom att fortsätta att använda det gamla tillståndet. Det nya tillståndet används när Load metoden har slutförts.
Metoden Load är inte trådsäker när den anropas samtidigt från flera trådar.