Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo XslTransform.Transform (XPathNavigator, XsltArgumentList, Stream, XmlResolver)

 

Data di pubblicazione: ottobre 2016

Trasforma i dati XML nel XPathNavigator utilizzando l'oggetto specificato args e visualizza i risultati in un Stream.

Spazio dei nomi:   System.Xml.Xsl
Assembly:  System.Xml (in System.Xml.dll)

public void Transform(
	XPathNavigator input,
	XsltArgumentList args,
	Stream output,
	XmlResolver resolver
)

Parametri

input
Type: System.Xml.XPath.XPathNavigator

Un XPathNavigator contenente i dati da trasformare.

args
Type: System.Xml.Xsl.XsltArgumentList

Un XsltArgumentList contenente gli argomenti completo dello spazio dei nomi utilizzati come input della trasformazione.

output
Type: System.IO.Stream

Flusso in cui visualizzare il risultato.

resolver
Type: System.Xml.XmlResolver

Il XmlResolver utilizzato per risolvere il XSLT document() (funzione). Se si tratta di null, document() funzione non è stato risolto.

Il XmlResolver non memorizzati nella cache dopo il Transform metodo viene completato.

Exception Condition
InvalidOperationException

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

Nota: Questa è una modifica nel comportamento rispetto alle versioni precedenti. Un XsltException viene generata se si utilizza Microsoft .NET Framework versione 1.1 o precedenti.

System_CAPS_noteNota

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

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

Il args sono associate le 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 nodo diverso dal nodo radice del documento, questo non impedisce il processo di trasformazione accederà comunque a tutti i nodi nel documento caricato. Dopo la trasformazione è stata eseguita, il XPathNavigator rimane nello stato originale. Ciò significa che il nodo corrente prima del processo di trasformazione, rimane il nodo corrente dopo il Transform metodo è stato chiamato.

Vedere Output da un XslTransform per le specifiche in cui xsl:output gli attributi sono supportati.

Nell'esempio seguente viene caricata una tabella di clienti in un XmlDataDocument ed esegue una trasformazione XSLT per inserire i dati del cliente in una tabella HTML. Nell'esempio viene utilizzato il database Northwind di 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);

  }
}

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>

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: