Share via


XslTransform.Transform Metodo

Definizione

Trasforma i dati XML tramite il foglio di stile XSLT caricato.

Overload

Transform(XPathNavigator, XsltArgumentList, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un XmlReader .

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un TextWriter .

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un Stream .

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlWriter .

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un TextWriter .

Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un Stream .

Transform(XPathNavigator, XsltArgumentList, XmlWriter)
Obsoleta.

Trasforma i dati XML in XPathNavigator utilizzando gli argomenti specificati e visualizza i risultati in un XmlWriter .

Transform(XPathNavigator, XsltArgumentList, TextWriter)
Obsoleta.

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un TextWriter .

Transform(String, String, XmlResolver)

Trasforma i dati XML nel file di input e visualizza il risultato in un file di output.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
Obsoleta.

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlWriter .

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlReader .

Transform(IXPathNavigable, XsltArgumentList, TextWriter)
Obsoleta.

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un TextWriter .

Transform(IXPathNavigable, XsltArgumentList, Stream)
Obsoleta.

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un Stream .

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli argomenti specificati e visualizza i risultati in un XmlWriter .

Transform(XPathNavigator, XsltArgumentList)
Obsoleta.

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un XmlReader .

Transform(IXPathNavigable, XsltArgumentList)
Obsoleta.

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlReader .

Transform(String, String)
Obsoleta.

Trasforma i dati XML nel file di input e visualizza il risultato in un file di output.

Transform(XPathNavigator, XsltArgumentList, Stream)
Obsoleta.

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un Stream .

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

Transform(XPathNavigator, XsltArgumentList, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un XmlReader .

public:
 System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList, resolver As XmlResolver) As XmlReader

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(XPathNavigator, XsltArgumentList, XmlResolver).

Restituisce

XmlReader

XmlReader contenente i risultati della trasformazione.

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo aver eseguito la trasformazione, il XPathNavigator valore rimane nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo che il Transform metodo è stato chiamato.

Poiché XmlReader fornisce un output di sola lettura, l'elemento xsl:output viene ignorato. Per altre informazioni, vedere Output da un xslTransform .

Questo metodo consente di eseguire una trasformazione asincrona del documento di origine.

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un TextWriter .

public:
 void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
TextWriter

Oggetto TextWriter a cui si desidera restituire l'output.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver).

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo l'esecuzione della trasformazione, rimane XPathNavigator nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo la chiamata del Transform metodo.

L'attributo di codifica per un xsl:output elemento non è supportato durante l'output in un oggetto TextWriter. Per informazioni specifiche su quali xsl:output attributi sono supportati, vedere Output da xslTransform.

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un Stream .

public:
 void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream, resolver As XmlResolver)

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
Stream

Flusso in cui visualizzare il risultato.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver).

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Esempio

L'esempio seguente carica una tabella cliente in un oggetto XmlDataDocument ed esegue una trasformazione XSLT per eseguire il pull dei dati del cliente in una tabella HTML. Nell'esempio viene usato il database northwind Microsoft SQL Server 2000.

using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;

public class Sample
{
  public static void Main()
  {

     // Create a DataSet and load it with customer data.
     DataSet dsNorthwind = new DataSet();
     String sConnect;
     sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
     SqlConnection nwconnect = new SqlConnection(sConnect);
     String sCommand = "Select * from Customers where Region='WA'";
     SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect);
     myDataAdapter.Fill(dsNorthwind,"Customers");

     // Load the DataSet into an XmlDataDocument.
     XmlDataDocument doc = new XmlDataDocument(dsNorthwind);

     // Create the XslTransform object and load the stylesheet.
     XslTransform xsl = new XslTransform();
     xsl.Load("customers.xsl");

     // Create an XPathNavigator to use in the transform.
     XPathNavigator nav = doc.CreateNavigator();

     // Create a FileStream object.
     FileStream fs = new FileStream("cust.html", FileMode.Create);

     // Transform the data.
     xsl.Transform(nav, null, fs, null);
  }
}
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl

public class Sample

  public shared sub Main()

     ' Create a DataSet and load it with customer data.
     Dim dsNorthwind as DataSet = new DataSet()        
     Dim sConnect as String           
     sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"     
     Dim nwconnect as SqlConnection
     nwconnect = new SqlConnection(sConnect)
     Dim sCommand as String = "Select * from Customers where Region='WA'"
     Dim myDataAdapter as SqlDataAdapter
     myDataAdapter = new SqlDataAdapter(sCommand, nwconnect)
     myDataAdapter.Fill(dsNorthwind,"Customers")

     ' Load the DataSet into an XmlDataDocument.
     Dim doc as XmlDataDocument = new XmlDataDocument(dsNorthwind)   

     ' Create the XslTransform object and load the stylesheet.
     Dim xsl as XslTransform = new XslTransform()     
     xsl.Load("customers.xsl")

     ' Create an XPathNavigator to use in the transform.
     Dim nav as XPathNavigator = doc.CreateNavigator()

     ' Create a FileStream object.
     Dim fs as FileStream = new FileStream("cust.html", FileMode.Create)
 
     ' Transform the data.
     xsl.Transform(nav, nothing, fs, nothing)
    
  end sub
end class

Nell'esempio viene utilizzato il file customers.xsl come input.

<!-- Stylesheet to sort customers by city-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

  <xsl:template match="NewDataSet">
    <HTML>
      <BODY>
        <TABLE BORDER="2">
          <TR>
            <TD>Company Name</TD>
            <TD>Contact Name</TD>
            <TD>City</TD>
          </TR>
         <xsl:apply-templates select="Customers">
            <xsl:sort select="City"/>
         </xsl:apply-templates>
        </TABLE>
      </BODY>
    </HTML>
  </xsl:template>

  <xsl:template match="Customers">
    <TR>
      <TD><xsl:value-of select="CompanyName"/></TD>
      <TD><xsl:value-of select="ContactName"/></TD>
      <TD><xsl:value-of select="City"/></TD>
    </TR>
  </xsl:template>

</xsl:stylesheet>

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo l'esecuzione della trasformazione, rimane XPathNavigator nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo la chiamata del Transform metodo.

Per informazioni specifiche su quali xsl:output attributi sono supportati, vedere Output da xslTransform.

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlWriter .

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
XmlWriter

Oggetto XmlWriter a cui si desidera restituire l'output.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver).

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Esempio

Nell'esempio seguente un documento XML viene trasformato in un documento HTML. Visualizza il codice ISBN, il titolo e il prezzo per ogni libro in una tabella.

#using <System.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;

int main()
{
   String^ filename = "books.xml";
   String^ stylesheet = "output.xsl";

   //Load the stylesheet.
   XslTransform^ xslt = gcnew XslTransform;
   xslt->Load( stylesheet );

   //Load the file to transform.
   XPathDocument^ doc = gcnew XPathDocument( filename );

   //Create an XmlTextWriter which outputs to the console.
   XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );

   //Transform the file and send the output to the console.
   xslt->Transform(doc,nullptr,writer,nullptr);
   writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;

public class Sample
{
  private const String filename = "books.xml";
  private const String stylesheet = "output.xsl";

  public static void Main()
  {
    //Load the stylesheet.
    XslTransform xslt = new XslTransform();
    xslt.Load(stylesheet);

    //Load the file to transform.
    XPathDocument doc = new XPathDocument(filename);

    //Create an XmlTextWriter which outputs to the console.
    XmlTextWriter writer = new XmlTextWriter(Console.Out);

    //Transform the file and send the output to the console.
    xslt.Transform(doc, null, writer, null);
    writer.Close();
  }
}
Option Strict
Option Explicit

Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath

Public Class Sample
    Private Shared filename1 As String = "books.xml"
    Private Shared stylesheet1 As String = "output.xsl"
    
    
    Public Shared Sub Main()
        'Load the stylesheet.
        Dim xslt As New XslTransform()
        xslt.Load(stylesheet1)
        
        'Load the file to transform.
        Dim doc As New XPathDocument(filename1)
        
        'Create an XmlTextWriter which outputs to the console.
        Dim writer As New XmlTextWriter(Console.Out)
        
        'Transform the file and send the output to the console.
        xslt.Transform(doc, Nothing, writer, Nothing)
        writer.Close()
    End Sub
End Class

Nell'esempio vengono utilizzati i seguenti due file di input:

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

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile. L'elemento xsl:output non è supportato quando l'output in un oggetto XmlWriter (xsl:output viene ignorato). Per altre informazioni, vedere Output da xslTransform .

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passarlo XmlDocument al Transform metodo .

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out, null);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />  
  <template match="/">  
  Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un TextWriter .

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
TextWriter

Oggetto TextWriter a cui si desidera restituire l'output.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver).

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Esempio

Nell'esempio seguente viene trasformato un file XML e viene restituita una stringa HTML. Le StringReader classi e StringWriter vengono usate per leggere e scrivere le stringhe.

using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;

public class Sample {

  public static void Main() {

    // Create a string containing the XSLT stylesheet.
    String xsltString =
    @"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
        <xsl:template match='bookstore'>
           <HTML>
              <HEAD>
                 <TITLE>Book Titles</TITLE>
             </HEAD>
             <BODY>
                <xsl:apply-templates select='book'/>
             </BODY>
          </HTML>
        </xsl:template>
        <xsl:template match='book'>
          <P><xsl:value-of select='title'/></P>
        </xsl:template>
        </xsl:stylesheet>";

    // Create the XslTransform object.
    XslTransform xslt = new XslTransform();

    // Load the stylesheet.
    StringReader rdr = new StringReader(xsltString);
    xslt.Load(new XPathDocument(rdr), null, null);

    // Transform the file and output an HTML string.
    string HTMLoutput;
    StringWriter writer = new StringWriter();
    xslt.Transform(new XPathDocument("books.xml"), null, writer, null);
    HTMLoutput = writer.ToString();
  }
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath

public class Sample 

  public shared sub Main() 
   
    ' Create a string containing the XSLT stylesheet.
    Dim xsltString as String 
    xsltString = "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>" & _
    "   <xsl:template match='bookstore'>" & _
    "      <HTML>" & _
    "         <HEAD>" & _
    "            <TITLE>Book Titles</TITLE>" & _
    "       </HEAD>" & _
    "        <BODY>" & _
    "           <xsl:apply-templates select='book'/>" & _
    "        </BODY>" & _
    "     </HTML>" & _
    "   </xsl:template>" & _
    "  <xsl:template match='book'>" & _
    "     <P><xsl:value-of select='title'/></P>" & _
    "   </xsl:template>" & _
    "   </xsl:stylesheet>"

    ' Create the XslTransform object.
    Dim xslt as XslTransform = new XslTransform()

    ' Load the stylesheet.
    Dim rdr as StringReader = new StringReader(xsltString)
    xslt.Load(new XPathDocument(rdr), nothing, nothing)

    ' Transform the file and output an HTML string.
    Dim HTMLoutput as string
    Dim writer as StringWriter = new StringWriter()
    xslt.Transform(new XPathDocument("books.xml"), nothing, writer, nothing)
    HTMLoutput = writer.ToString()

  end sub
end class

Nell'esempio viene utilizzato il file books.xml come input.

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

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile.

L'attributo di codifica in un xsl:output elemento non è supportato durante l'output in un TextWriteroggetto . Per specifiche su quali xsl:output attributi sono supportati, vedere Output da un xslTransform.

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passare tale XmlDocument frammento al Transform metodo.

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out, null);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />   
  <template match="/">  
     Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un Stream .

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream, resolver As XmlResolver)

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
Stream

Flusso in cui visualizzare il risultato.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform.

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Esempio

Nell'esempio seguente viene eseguita una trasformazione all'interno di una pagina ASP.NET.

<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script language="C#" runat="server">
      void Page_Load(Object sender, EventArgs e) 
      {
         // Load the XML document to transform.
         XPathDocument doc = new XPathDocument(Server.MapPath("books.xml"));

         // Load the stylesheet and perform the transform.
         XslTransform xslt = new XslTransform();
         xslt.Load(Server.MapPath("output.xsl"));
         xslt.Transform(doc, null, Response.OutputStream, null);
        
      }
   </script>
</html>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
   <script language="VB" runat="server">
      sub Page_Load(sender as Object, e as EventArgs) 

         ' Load the XML document to transform.
         dim doc as XPathDocument = new XPathDocument(Server.MapPath("books.xml"))

         ' Load the stylesheet and perform the transform.
         dim xslt as XslTransform = new XslTransform()
         xslt.Load(Server.MapPath("output.xsl"))
         xslt.Transform(doc, nothing, Response.OutputStream, nothing)
        
      end sub
   </script>
</html>

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile.

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passare tale XmlDocument frammento al Transform metodo.

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out, null);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />   
  <template match="/">  
     Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList, XmlWriter)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in XPathNavigator utilizzando gli argomenti specificati e visualizza i risultati in un XmlWriter .

public:
 void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter)

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
XmlWriter

Oggetto XmlWriter a cui si desidera restituire l'output.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo l'esecuzione della trasformazione, il XPathNavigator valore rimane nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo che il Transform metodo è stato chiamato.

L'elemento non è supportato durante l'output xsl:output in un XmlWriter oggetto (xsl:output viene ignorato). Per altre informazioni, vedere Output da un xslTransform .

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList, TextWriter)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un TextWriter .

public:
 void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter)

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
TextWriter

Oggetto TextWriter a cui si desidera restituire l'output.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo l'esecuzione della trasformazione, il XPathNavigator valore rimane nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo che il Transform metodo è stato chiamato.

L'attributo di codifica in un xsl:output elemento non è supportato durante l'output in un TextWriteroggetto . Per specifiche su quali xsl:output attributi sono supportati, vedere Output da un xslTransform.

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

Vedi anche

Si applica a

Transform(String, String, XmlResolver)

Trasforma i dati XML nel file di input e visualizza il risultato in un file di output.

public:
 void Transform(System::String ^ inputfile, System::String ^ outputfile, System::Xml::XmlResolver ^ resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver? resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver resolver);
member this.Transform : string * string * System.Xml.XmlResolver -> unit
Public Sub Transform (inputfile As String, outputfile As String, resolver As XmlResolver)

Parametri

inputfile
String

URL del documento di origine da trasformare.

outputfile
String

URL del file di output.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform.

Esempio

L'esempio seguente esegue una trasformazione XSLT e restituisce output in un file. Un XmlUrlResolver oggetto con credenziali predefinite viene usato per risolvere le risorse esterne. Per informazioni dettagliate, vedere DefaultCredentials.

// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;

// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;

// Load the stylesheet.
xslt->Load( "http://myServer/data/authors.xsl", resolver );

// Transform the file.
xslt->Transform( "books.xml", "books.html", resolver );

// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;

// Create the XslTransform object.
XslTransform xslt = new XslTransform();

// Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver);

// Transform the file.
xslt.Transform("books.xml", "books.html", resolver);

' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()

' Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver)

' Transform the file. 
xslt.Transform("books.xml", "titles.xml", resolver)

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlWriter .

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter)

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
XmlWriter

Oggetto XmlWriter a cui si desidera restituire l'output.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile. L'elemento non è supportato durante l'output xsl:output in un XmlWriter oggetto (xsl:output viene ignorato). Per altre informazioni, vedere Output da un xslTransform .

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passare tale XmlDocument frammento al Transform metodo.

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />  
  <template match="/">  
  Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, XmlResolver)

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlReader .

public:
 System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList, resolver As XmlResolver) As XmlReader

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(IXPathNavigable, XsltArgumentList, XmlResolver).

Restituisce

XmlReader

XmlReader contenente i risultati della trasformazione.

Esempio

Nell'esempio seguente viene trasformato un documento XML e vengono restituiti i risultati in un XmlReaderoggetto . Un XmlUrlResolver oggetto con le credenziali necessarie viene usato per elaborare qualsiasi funzione XSLT document() .

// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;

// Load the stylesheet.
xslt->Load( "titles.xsl" );

// Create a resolver and specify the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ myCred;
myCred = gcnew System::Net::NetworkCredential( UserName, SecurelyStoredPassword, Domain );
resolver->Credentials = myCred;

// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
XmlReader^ reader = xslt->Transform( doc, nullptr, resolver );

// Load the reader into a new document for more processing.
XmlDocument^ xmldoc = gcnew XmlDocument;
xmldoc->Load( reader );
// Create the XslTransform object.
XslTransform xslt = new XslTransform();

// Load the stylesheet.
xslt.Load("titles.xsl");

// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred  = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;

// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument doc = new XPathDocument("books.xml");
XmlReader reader = xslt.Transform(doc, null, resolver);

// Load the reader into a new document for more processing.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()

' Load the stylesheet.
xslt.Load("titles.xsl")

' Create a resolver and specify the necessary credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim myCred as System.Net.NetworkCredential 
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain)
resolver.Credentials = myCred

' Transform thefile using the resolver. The resolver is used
' to process the XSLT document() function.
Dim doc as XPathDocument = new XPathDocument("books.xml")
Dim reader as XmlReader = xslt.Transform(doc, nothing, resolver)

' Load the reader into a new document for more processing.
Dim xmldoc as XmlDocument = new XmlDocument()
xmldoc.Load(reader)

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile. L'elemento xsl:output non è supportato durante l'output in un oggetto XmlReader (l'elemento xsl:output viene ignorato). Per altre informazioni, vedere Output da un xslTransform .

Questo metodo consente di eseguire una trasformazione asincrona del documento di origine.

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passare tale XmlDocument frammento al Transform metodo .

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out, null);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />   
  <template match="/">  
     Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, TextWriter)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un TextWriter .

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter)

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
TextWriter

Oggetto TextWriter a cui si desidera restituire l'output.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile.

L'attributo di codifica per un xsl:output elemento non è supportato durante l'output in un oggetto TextWriter. Per informazioni specifiche su quali xsl:output attributi sono supportati, vedere Output da xslTransform.

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passare tale XmlDocument frammento al Transform metodo .

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />   
  <template match="/">  
     Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList, Stream)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un Stream .

public:
 void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream)

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
Stream

Flusso in cui visualizzare il risultato.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile.

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passarlo XmlDocument al Transform metodo .

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />   
  <template match="/">  
     Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)

Trasforma i dati XML in XPathNavigator utilizzando gli argomenti specificati e visualizza i risultati in un XmlWriter .

public:
 void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
XmlWriter

Oggetto XmlWriter a cui si desidera restituire l'output.

resolver
XmlResolver

XmlResolver usato per risolvere la funzione XSLT document(). Se il valore è null, la funzione document() non viene risolta.

L'oggetto XmlResolver non viene inserito nella cache fino al completamento del metodo Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver).

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Esempio

Nell'esempio seguente viene caricato e modificato un documento XML prima di eseguire una trasformazione XSLT.

XmlDocument^ doc = gcnew XmlDocument;
doc->Load( "books.xml" );

// Modify the XML file.
XmlElement^ root = doc->DocumentElement;
root->FirstChild->LastChild->InnerText = "12.95";

// Create an XPathNavigator to use for the transform.
XPathNavigator^ nav = root->CreateNavigator();

// Transform the file.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( "output.xsl" );
XmlTextWriter^ writer = gcnew XmlTextWriter( "books.html", nullptr );
xslt->Transform( nav, nullptr, writer, nullptr);
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");

// Modify the XML file.
XmlElement root = doc.DocumentElement;
root.FirstChild.LastChild.InnerText = "12.95";

// Create an XPathNavigator to use for the transform.
XPathNavigator nav = root.CreateNavigator();

// Transform the file.
XslTransform xslt = new XslTransform();
xslt.Load("output.xsl");
XmlTextWriter writer = new XmlTextWriter("books.html", null);
xslt.Transform(nav, null, writer, null);
Dim doc as XmlDocument = new XmlDocument()
doc.Load("books.xml")

' Modify the XML file.
Dim root as XmlElement = doc.DocumentElement
root.FirstChild.LastChild.InnerText = "12.95"

' Create an XPathNavigator to use for the transform.
Dim nav as XPathNavigator = root.CreateNavigator()

' Transform the file.
Dim xslt as XslTransform = new XslTransform()
xslt.Load("output.xsl")
Dim writer as XmlTextWriter = new XmlTextWriter("books.html", nothing)
xslt.Transform(nav,nothing, writer, nothing)

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo l'esecuzione della trasformazione, rimane XPathNavigator nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo che il Transform metodo è stato chiamato.

L'elemento non è supportato durante l'output xsl:output in un XmlWriter oggetto (xsl:output viene ignorato). Per altre informazioni, vedere Output da un xslTransform .

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un XmlReader .

public:
 System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList) As XmlReader

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

Restituisce

XmlReader

XmlReader contenente i risultati della trasformazione.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo l'esecuzione della trasformazione, rimane XPathNavigator nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo la chiamata del Transform metodo.

Poiché XmlReader fornisce un output di sola lettura, l'elemento xsl:output viene ignorato. Per altre informazioni, vedere Output da xslTransform .

Questo metodo consente di eseguire una trasformazione asincrona del documento di origine.

Nota

Questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document(). La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

Vedi anche

Si applica a

Transform(IXPathNavigable, XsltArgumentList)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in IXPathNavigable utilizzando gli args specificati e visualizza i risultati in un XmlReader .

public:
 System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList) As XmlReader

Parametri

input
IXPathNavigable

Oggetto che implementa l'interfaccia IXPathNavigable. In .NET Framework può essere un XmlNode (in genere un XmlDocument) o un XPathDocument contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

Restituisce

XmlReader

XmlReader contenente i risultati della trasformazione.

Attributi

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

L'oggetto args viene confrontato con gli xsl:param elementi definiti nel foglio di stile. L'elemento xsl:output non è supportato durante l'output in un oggetto XmlReader (l'elemento xsl:output viene ignorato). Per altre informazioni, vedere Output da xslTransform .

Questo metodo consente di eseguire una trasformazione asincrona del documento di origine.

Le trasformazioni si applicano all'intero documento. In altre parole, se viene passato un nodo diverso dal nodo radice del documento, il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un XmlDocument oggetto contenente solo il frammento di nodo e passarlo XmlDocument al Transform metodo .

Nell'esempio seguente viene eseguita una trasformazione in un frammento di nodo.

XslTransform xslt = new XslTransform();       
xslt.Load("print_root.xsl");  
XmlDocument doc = new XmlDocument();  
doc.Load("library.xml");  
// Create a new document containing just the node fragment.  
XmlNode testNode = doc.DocumentElement.FirstChild;   
XmlDocument tmpDoc = new XmlDocument();   
tmpDoc.LoadXml(testNode.OuterXml);  
// Pass the document containing the node fragment   
// to the Transform method.  
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");  
xslt.Transform(tmpDoc, null, Console.Out);  

L'esempio usa i library.xml file e print_root.xsl come input e restituisce quanto segue nella console.

Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl   
Root node is book.  

library.xml

<library>  
  <book genre='novel' ISBN='1-861001-57-5'>  
     <title>Pride And Prejudice</title>  
  </book>  
  <book genre='novel' ISBN='1-81920-21-2'>  
     <title>Hook</title>  
  </book>  
</library>  

print_root.xsl

<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >  
  <output method="text" />   
  <template match="/">  
     Root node is  <value-of select="local-name(//*[position() = 1])" />   
  </template>  
</stylesheet>  

Vedi anche

Si applica a

Transform(String, String)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML nel file di input e visualizza il risultato in un file di output.

public:
 void Transform(System::String ^ inputfile, System::String ^ outputfile);
public void Transform (string inputfile, string outputfile);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (string inputfile, string outputfile);
member this.Transform : string * string -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : string * string -> unit
Public Sub Transform (inputfile As String, outputfile As String)

Parametri

inputfile
String

URL del documento di origine da trasformare.

outputfile
String

URL del file di output.

Attributi

Esempio

Nell'esempio seguente il books.xml file viene trasformato utilizzando il output.xsl foglio di stile e vengono restituiti i risultati nel books.html file.

// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;

// Load the stylesheet.
xslt->Load( "output.xsl" );

// Transform the file.
xslt->Transform("books.xml","books.html");
//Create the XslTransform object.
XslTransform xslt = new XslTransform();

//Load the stylesheet.
xslt.Load("output.xsl");

//Transform the file.
xslt.Transform("books.xml", "books.html");
'Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()

'Load the stylesheet.
xslt.Load("output.xsl")

'Transform the file.
xslt.Transform("books.xml", "books.html")

L'esempio usa i due file di input seguenti:

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

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Nota

Questo metodo è obsoleto nella versione 1.1 di .NET Framework. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

Vedi anche

Si applica a

Transform(XPathNavigator, XsltArgumentList, Stream)

Attenzione

You should pass XmlResolver to Transform() method

Trasforma i dati XML in XPathNavigator utilizzando gli args specificati e visualizza i risultati in un Stream .

public:
 void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream)

Parametri

input
XPathNavigator

XPathNavigator contenente i dati da trasformare.

args
XsltArgumentList

XsltArgumentList contenente gli argomenti qualificati come spazi dei nomi che vengono utilizzati come input per la trasformazione.

output
Stream

Flusso in cui visualizzare il risultato.

Attributi

Eccezioni

Si è verificato un errore durante l'elaborazione della trasformazione XSLT.

Nota: questo comportamento è stato modificato rispetto alle versioni precedenti. In Microsoft .NET Framework versione 1.1 o precedente viene generato un oggetto XsltException.

Commenti

Nota

La XslTransform classe è obsoleta in .NET Framework versione 2.0. La XslCompiledTransform classe è il nuovo processore XSLT. Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

XslTransform supporta la sintassi XSLT 1.0. Il foglio di stile XSLT deve includere la dichiarazione xmlns:xsl= http://www.w3.org/1999/XSL/Transformdello spazio dei nomi .

Le args corrispondenze con gli xsl:param elementi definiti nel foglio di stile. Le selezioni di trasformazione si applicano al documento nel suo complesso. In altre parole, se il nodo corrente è impostato su un albero di nodi diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Dopo aver eseguito la trasformazione, il XPathNavigator valore rimane nello stato originale. Ciò significa che il nodo, che è corrente prima del processo di trasformazione, rimane il nodo corrente dopo che il Transform metodo è stato chiamato.

Per specifiche su quali xsl:output attributi sono supportati, vedere Output da un xslTransform.

Nota

questo metodo è obsoleto. L'impostazione XmlResolver della proprietà determina la modalità di risoluzione della funzione XSLT document() . La procedura consigliata consiste nell'usare il Transform metodo che accetta un XmlResolver oggetto come uno dei relativi argomenti.

Vedi anche

Si applica a