XslCompiledTransform XslCompiledTransform XslCompiledTransform XslCompiledTransform Class

Definizione

Trasforma i dati XML utilizzando un foglio di stile XSLT.Transforms XML data using an XSLT style sheet.

public ref class XslCompiledTransform sealed
public sealed class XslCompiledTransform
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
Ereditarietà
XslCompiledTransformXslCompiledTransformXslCompiledTransformXslCompiledTransform

Esempi

Nell'esempio seguente esegue una trasformazione e output in un file.The following example executes a transform and outputs to a 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")

L'esempio Usa i due file di input seguenti:The sample uses the following two input files:

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>

Commenti

Il XslCompiledTransform classe è un processore XSLT che supporta la sintassi XSLT 1.0.The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax. È una nuova implementazione e include miglioramenti delle prestazioni rispetto a obsoleta XslTransform classe.It is a new implementation and includes performance gains when compared to the obsolete XslTransform class. La struttura del XslCompiledTransform classe è molto simile al XslTransform classe.The structure of the XslCompiledTransform class is very similar to the XslTransform class. Il Load metodo carica e Compila stile foglio, mentre il Transform metodo esegue la trasformazione XSLT.The Load method loads and compiles the style sheet, while the Transform method executes the XSLT transform.

Supporto per XSLT document() (funzione) e blocchi di script incorporati sono disabilitati per impostazione predefinita.Support for the XSLT document() function and embedded script blocks are disabled by default. Queste funzionalità possono essere abilitate mediante la creazione di un' XsltSettings oggetto e passandolo al Load (metodo).These features can be enabled by creating an XsltSettings object and passing it to the Load method.

Per altre informazioni, vedere usando la classe XslCompiledTransform e migrazione dalla classe XslTransform.For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.

Considerazioni sulla sicurezzaSecurity Considerations

Quando si crea un'applicazione in cui viene utilizzata la classe XslCompiledTransform, è necessario conoscere i seguenti elementi e le relative implicazioni:When creating an application that uses the XslCompiledTransform class, you should be aware of the following items and their implications:

  • Gli script XSLT sono disattivati per impostazione predefinita.XSLT scripting is disabled by default. Lo script con XSLT deve essere abilitato solo se è necessario il supporto per gli script e solo all'interno di un ambiente completamente attendibile.XSLT scripting should be enabled only if you require script support and you are working in a fully trusted environment.

  • La funzionalità XSLT document() è disattivata per impostazione predefinita.The XSLT document() function is disabled by default. Se si abilita la funzione document(), limitare le risorse a cui è possibile accedere passando un oggetto XmlSecureResolver al metodo Transform.If you enable the document() function, restrict the resources that can be accessed by passing an XmlSecureResolver object to the Transform method.

  • Gli oggetti di estensione sono abilitati per impostazione predefinita.Extension objects are enabled by default. Vengono utilizzati se un oggetto XsltArgumentList contenente oggetti di estensione viene passato al metodo Transform.If an XsltArgumentList object containing extension objects is passed to the Transform method, they are utilized.

  • Nei fogli di stile XSLT possono essere inclusi riferimenti ad altri file e a blocchi di script incorporati.XSLT style sheets can include references to other files and embedded script blocks. Un utente malintenzionato può sfruttare questa situazione fornendo dati o fogli di stile che, quando eseguiti, possono determinare l'elaborazione continua da parte del sistema finché le risorse del computer diventeranno insufficienti.A malicious user can exploit this by supplying you with data or style sheets that when executed can cause your system to process until the computer runs low on resources.

  • Le applicazioni XSLT che vengono eseguite in un ambiente con attendibilità mista potrebbero consentire lo spoofing del foglio di stile.XSLT applications that run in a mixed trust environment can result in style sheet spoofing. Ad esempio, un utente malintenzionato può caricare un oggetto con un foglio di stile dannoso e trasferirlo a un altro utente che in un secondo momento chiama il metodo Transform ed esegue la trasformazione.For example, a malicious user can load an object with a harmful style sheet and hand it off to another user who subsequently calls the Transform method and executes the transformation.

I problemi relativi alla sicurezza possono essere limitati non attivando gli script o la funzionalità document(), a meno che il foglio di stile non provenga da un'origine attendibile, e non accettando gli oggetti XslCompiledTransform, i fogli di stile XSLT o i dati di origine XML da un'origine non attendibile.These security issues can be mitigated by not enabling scripting or the document() function unless the style sheet comes from a trusted source, and by not accepting XslCompiledTransform objects, XSLT style sheets, or XML source data from an untrusted source.

Costruttori

XslCompiledTransform() XslCompiledTransform() XslCompiledTransform() XslCompiledTransform()

Inizializza una nuova istanza della classe XslCompiledTransform.Initializes a new instance of the XslCompiledTransform class.

XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean)

Consente di inizializzare una nuova istanza della classe XslCompiledTransform con l'impostazione di debug specificata.Initializes a new instance of the XslCompiledTransform class with the specified debug setting.

Proprietà

OutputSettings OutputSettings OutputSettings OutputSettings

Ottiene un oggetto XmlWriterSettings contenente le informazioni di output derivate dall'elemento xsl:output del foglio di stile.Gets an XmlWriterSettings object that contains the output information derived from the xsl:output element of the style sheet.

TemporaryFiles TemporaryFiles TemporaryFiles TemporaryFiles

Ottiene l'oggetto TempFileCollection contenente i file temporanei generati sul disco dopo una chiamata al metodo Load.Gets the TempFileCollection that contains the temporary files generated on disk after a successful call to the Load method.

Metodi

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

Compila un foglio di stile XSLT a un tipo specificato.Compiles an XSLT style sheet to a specified type.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable)

Compila il foglio di stile contenuto nell'oggetto IXPathNavigable.Compiles the style sheet contained in the IXPathNavigable object.

Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver)

Compila il foglio di stile XSLT contenuto nell'oggetto IXPathNavigable.Compiles the XSLT style sheet contained in the IXPathNavigable. XmlResolver risolve eventuali elementi XSLT import o include, mentre le impostazioni XSLT determinano le autorizzazioni per il foglio di stile.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

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

Carica un metodo da un foglio di stile compilato utilizzando l'utilità XSLTC.exe.Loads a method from a style sheet compiled using the XSLTC.exe utility.

Load(String) Load(String) Load(String) Load(String)

Carica e compila il foglio di stile che si trova all'URI specificato.Loads and compiles the style sheet located at the specified URI.

Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver)

Carica e compila il foglio di stile XSLT specificato dall'URI.Loads and compiles the XSLT style sheet specified by the URI. XmlResolver risolve eventuali elementi XSLT import o include, mentre le impostazioni XSLT determinano le autorizzazioni per il foglio di stile.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

Load(Type) Load(Type) Load(Type) Load(Type)

Carica il foglio di stile compilato che è stato creato tramite il compilatore XSLT (xsltc.exe).Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).

Load(XmlReader) Load(XmlReader) Load(XmlReader) Load(XmlReader)

Compila il foglio di stile contenuto nell'oggetto XmlReader.Compiles the style sheet contained in the XmlReader.

Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver)

Compila il foglio di stile XSLT contenuto nell'oggetto XmlReader.Compiles the XSLT style sheet contained in the XmlReader. XmlResolver risolve eventuali elementi XSLT import o include, mentre le impostazioni XSLT determinano le autorizzazioni per il foglio di stile.The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)
Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto IXPathNavigable e invia i risultati a un oggetto XmlWriter.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto IXPathNavigable e visualizza i risultati in un flusso.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to a stream. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional runtime arguments.

Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto IXPathNavigable e invia i risultati a un oggetto TextWriter.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an TextWriter. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto IXPathNavigable e invia i risultati a un oggetto XmlWriter.Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Esegue la trasformazione usando il documento di input specificato dall'oggetto IXPathNavigable e invia i risultati a un oggetto XmlWriter.Executes the transform by using the input document that is specified by the IXPathNavigable object and outputs the results to an XmlWriter. L'oggetto XsltArgumentList fornisce argomenti di runtime aggiuntivi, mentre l'oggetto XmlResolver risolve la funzione XSLT document().The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Transform(String, String) Transform(String, String) Transform(String, String) Transform(String, String)

Esegue la trasformazione utilizzando il documento di input specificato dall'URI e visualizza i risultati in un file.Executes the transform using the input document specified by the URI and outputs the results to a file.

Transform(String, XmlWriter) Transform(String, XmlWriter) Transform(String, XmlWriter) Transform(String, XmlWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'URI e visualizza i risultati in un oggetto XmlWriter.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter.

Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream)

Esegue la trasformazione utilizzando il documento di input specificato dall'URI e visualizza i risultati in un flusso.Executes the transform using the input document specified by the URI and outputs the results to stream. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'URI e visualizza i risultati in un oggetto TextWriter.Executes the transform using the input document specified by the URI and outputs the results to a TextWriter.

Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'URI e visualizza i risultati in un oggetto XmlWriter.Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto XmlReader e invia i risultati a un oggetto XmlWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto XmlReader e visualizza i risultati in un flusso.Executes the transform using the input document specified by the XmlReader object and outputs the results to a stream. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto XmlReader e visualizza i risultati in un oggetto TextWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to a TextWriter. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto XmlReader e invia i risultati a un oggetto XmlWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. L'oggetto XsltArgumentList fornisce argomenti aggiuntivi in fase di esecuzione.The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

Esegue la trasformazione utilizzando il documento di input specificato dall'oggetto XmlReader e invia i risultati a un oggetto XmlWriter.Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. XsltArgumentList offre argomenti di runtime aggiuntivi, mentre XmlResolver risolve la funzione XSLT document().The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Si applica a

Thread safety

Il XslCompiledTransform oggetto è thread-safe dopo che è stato caricato.The XslCompiledTransform object is thread safe once it has been loaded. In altre parole, dopo il Load metodo viene completato correttamente, il Transform metodo può essere chiamato simultaneamente da più thread.In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads.

Se il Load metodo viene chiamato nuovamente in un thread mentre il Transform metodo viene chiamato in un altro thread, il XslCompiledTransform oggetto termina l'esecuzione il Transform chiamare continuando a utilizzare lo stato precedente.If the Load method is called again in one thread while the Transform method is being called in another thread, the XslCompiledTransform object finishes executing the Transform call by continuing to use the old state. Il nuovo stato viene usato quando il Load metodo viene completato correttamente.The new state is used when the Load method successfully completes.

Il Load metodo non è thread-safe quando chiamato simultaneamente da più thread.The Load method is not thread safe when called simultaneously from multiple threads.

Vedi anche