XslCompiledTransform Osztály

Definíció

Az XML-adatokat XSLT-stíluslap használatával alakítja át.

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
Öröklődés
XslCompiledTransform
Attribútumok

Példák

Az alábbi példa egy fájl átalakítását és kimenetét hajtja végre.

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

A minta a következő két bemeneti fájlt használja:

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

Megjegyzések

Az XslCompiledTransform osztály egy XSLT-processzor, amely támogatja az XSLT 1.0 szintaxist. Ez egy új implementáció, és az elavult XslTransform osztályhoz képest teljesítménynövekedést is tartalmaz. Az osztály szerkezete XslCompiledTransform nagyon hasonló az XslTransform osztályhoz. A Load metódus betölti és lefordítja a stíluslapot, míg a Transform metódus végrehajtja az XSLT-átalakítást.

Az XSLT document() függvény és a beágyazott szkriptblokkok támogatása alapértelmezés szerint le van tiltva. Ezek a funkciók egy objektum létrehozásával XsltSettings és a Load metódusnak való átadásával engedélyezhetők.

További információ: Az XslCompiledTransform osztály használata és áttelepítés az XslTransform osztályból.

Biztonsági megfontolások

Az osztályt használó XslCompiledTransform alkalmazás létrehozásakor tisztában kell lennie a következő elemekkel és azok következményeival:

  • Az XSLT-szkriptek alapértelmezés szerint le vannak tiltva. Az XSLT-szkriptek csak akkor engedélyezhetők, ha szkripttámogatást igényel, és teljes mértékben megbízható környezetben dolgozik.

  • Az XSLT document() függvény alapértelmezés szerint le van tiltva. Ha engedélyezi a függvénytdocument(), korlátozza azokat az erőforrásokat, amelyek a metódusnak Transform való átadással ThrowingResolver érhetők el.

  • A bővítményobjektumok alapértelmezés szerint engedélyezve vannak. Ha egy XsltArgumentList bővítményobjektumokat tartalmazó objektumot ad át a Transform metódusnak, a rendszer ezeket használja.

  • Az XSLT-stíluslapok tartalmazhatnak más fájlokra és beágyazott szkriptblokkokra mutató hivatkozásokat. A rosszindulatú felhasználó kihasználhatja ezt azáltal, hogy olyan adatokat vagy stíluslapokat ad meg Önnek, amelyek végrehajtása közben a rendszer addig dolgozik, amíg a számítógép erőforrásai kimerülnek.

  • A vegyes megbízhatósági környezetben futó XSLT-alkalmazások stíluslap-hamisítást eredményezhetnek. Egy rosszindulatú felhasználó például betölthet egy objektumot egy káros stíluslappal, és átadhatja azt egy másik felhasználónak, aki később meghívja a Transform metódust, és végrehajtja az átalakítást.

Ezeket a biztonsági problémákat úgy lehet elhárítani, hogy nem engedélyezi a szkriptelést vagy a document() függvényt, kivéve, ha a stíluslap megbízható forrásból származik, és nem fogad el XslCompiledTransform objektumokat, XSLT-stíluslapokat vagy XML-forrásadatokat nem megbízható forrásból.

Konstruktorok

Name Description
XslCompiledTransform()

Inicializálja a XslCompiledTransform osztály új példányát.

XslCompiledTransform(Boolean)

Inicializálja az osztály új példányát XslCompiledTransform a megadott hibakeresési beállítással.

Tulajdonságok

Name Description
OutputSettings

XmlWriterSettings Lekéri a stíluslap eleméből xsl:output származó kimeneti adatokat tartalmazó objektumot.

TemporaryFiles

Lekéri a TempFileCollection lemezen létrehozott ideiglenes fájlokat a metódus sikeres hívása Load után.

Metódusok

Name Description
CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String)

Egy XSLT-stíluslap fordítása egy megadott típusra.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
Load(IXPathNavigable, XsltSettings, XmlResolver)

A az XSLT stíluslapját fordítja le.IXPathNavigable A XmlResolver megoldás feloldja az XSLT-t import vagy include -elemeket, és az XSLT-beállítások határozzák meg a stíluslap engedélyeit.

Load(IXPathNavigable)

Lefordítja az objektumban IXPathNavigable található stíluslapot.

Load(MethodInfo, Byte[], Type[])

Betölt egy metódust a segédprogrammal XSLTC.exe lefordított stíluslapról.

Load(String, XsltSettings, XmlResolver)

Betölti és lefordítja az URI által megadott XSLT stíluslapot. A XmlResolver megoldás feloldja az XSLT-t import vagy include -elemeket, és az XSLT-beállítások határozzák meg a stíluslap engedélyeit.

Load(String)

Betölti és lefordítja a megadott URI-n található stíluslapot.

Load(Type)

Betölti az XSLT Fordítóval (xsltc.exe) létrehozott lefordított stíluslapot.

Load(XmlReader, XsltSettings, XmlResolver)

A az XSLT stíluslapját fordítja le.XmlReader A XmlResolver megoldás feloldja az XSLT-t import vagy include -elemeket, és az XSLT-beállítások határozzák meg a stíluslap engedélyeit.

Load(XmlReader)

A stíluslap fordítása a XmlReader.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
Transform(IXPathNavigable, XmlWriter)

Végrehajtja az átalakítást az objektum által IXPathNavigable megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream)

Végrehajtja az átalakítást az objektum által IXPathNavigable megadott bemeneti dokumentum használatával, és az eredményeket streambe adja ki. Ez XsltArgumentList további futtatókörnyezeti argumentumokat biztosít.

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Végrehajtja az átalakítást az objektum által IXPathNavigable megadott bemeneti dokumentum használatával, és az eredményeket egy TextWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Az átalakítást az objektum által IXPathNavigable megadott bemeneti dokumentum használatával hajtja végre, és az eredményeket egy XmlWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít, és feloldja az XmlResolver XSLT document() függvényt.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Végrehajtja az átalakítást az objektum által IXPathNavigable megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

Transform(String, String)

Végrehajtja az átalakítást az URI által megadott bemeneti dokumentum használatával, és az eredményeket egy fájlba adja ki.

Transform(String, XmlWriter)

Végrehajtja az átalakítást az URI által megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter.

Transform(String, XsltArgumentList, Stream)

Végrehajtja az átalakítást az URI által megadott bemeneti dokumentum használatával, és az eredményeket streameli. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

Transform(String, XsltArgumentList, TextWriter)

Végrehajtja az átalakítást az URI által megadott bemeneti dokumentum használatával, és az eredményeket egy TextWriter.

Transform(String, XsltArgumentList, XmlWriter)

Végrehajtja az átalakítást az URI által megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

Transform(XmlReader, XmlWriter)

Végrehajtja az átalakítást az objektum által XmlReader megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream)

Végrehajtja az átalakítást az objektum által XmlReader megadott bemeneti dokumentum használatával, és az eredményeket streambe adja ki. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

Transform(XmlReader, XsltArgumentList, TextWriter)

Végrehajtja az átalakítást az objektum által XmlReader megadott bemeneti dokumentum használatával, és az eredményeket egy TextWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Végrehajtja az átalakítást az objektum által XmlReader megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít, és az XmlResolver feloldja az XSLT document() függvényt.

Transform(XmlReader, XsltArgumentList, XmlWriter)

Végrehajtja az átalakítást az objektum által XmlReader megadott bemeneti dokumentum használatával, és az eredményeket egy XmlWriter. Ez XsltArgumentList további futásidejű argumentumokat biztosít.

A következőre érvényes:

Szálbiztonság

Az XslCompiledTransform objektum a betöltés után szálbiztos. Más szóval, miután a Load metódus sikeresen befejeződött, a Transform metódus egyszerre hívható meg több szálból.

Ha a Load metódust ismét meghívja egy szál, miközben a Transform metódust egy másik szálon hívják meg, az XslCompiledTransform objektum a régi állapot használatával befejezi a Transform hívás végrehajtását. Az új állapotot a metódus sikeres befejezésekor használja a Load rendszer.

A Load metódus nem biztonságos több szál egyidejű meghívása esetén.

Lásd még