Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il Transform metodo accetta tre tipi di input per il documento di origine: un oggetto che implementa l'interfaccia IXPathNavigable , un XmlReader oggetto che legge il documento di origine o un URI stringa.
Annotazioni
La XslCompiledTransform classe mantiene gli spazi vuoti per impostazione predefinita. Questo comportamento è conforme alla sezione 3.4 della raccomandazione W3C XSLT 1.0.
Interfaccia IXPathNavigable
L'interfaccia IXPathNavigable viene implementata nelle XmlNode classi e XPathDocument . Queste classi rappresentano una cache in memoria di dati XML.
La XmlNode classe si basa sul DOM (Document Object Model) W3C e include funzionalità di modifica.
La XPathDocument classe è un archivio dati di sola lettura basato sul modello di dati XPath. XPathDocument è la classe consigliata per l'elaborazione XSLT. Offre prestazioni più veloci rispetto alla XmlNode classe .
Annotazioni
Le trasformazioni si applicano al documento nel suo complesso. In altre parole, se si passa un nodo diverso dal nodo radice del documento, questo non impedisce al processo di trasformazione di accedere a tutti i nodi nel documento caricato. Per trasformare un frammento di nodo, è necessario creare un oggetto contenente solo il frammento di nodo e passare tale Transform oggetto al metodo . Per altre informazioni, vedere Procedura: Trasformare un frammento di nodo.
Nell'esempio seguente viene utilizzato il XslCompiledTransform.Transform metodo per trasformare il file books.xml nel file books.html utilizzando il foglio di stile transform.xsl. I file books.xml e transform.xsl sono disponibili in questo argomento: Procedura: Eseguire una trasformazione XSLT usando un assembly.
// Open books.xml as an XPathDocument.
XPathDocument doc = new XPathDocument("books.xml");
// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform(doc, writer);
' Open books.xml as an XPathDocument.
Dim doc As XPathDocument = New XPathDocument("books.xml")
' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
'Execute the transformation.
transform.Transform(doc, writer)
Oggetto XmlReader
Il Transform metodo viene caricato dal nodo corrente dell'oggetto XmlReader attraverso tutti i relativi elementi figlio. In questo modo è possibile usare una parte di un documento come documento di contesto. Al termine del Transform metodo, l'oggetto XmlReader viene posizionato sul nodo successivo dopo la fine del documento di contesto. Se viene raggiunta la fine del documento, l'oggetto XmlReader viene posizionato alla fine del file (EOF).
Nell'esempio seguente viene utilizzato il XslCompiledTransform.Transform metodo per trasformare il file books.xml nel file books.html utilizzando il foglio di stile transform.xsl. I file books.xml e transform.xsl sono disponibili in questo argomento: Procedura: Eseguire una trasformazione XSLT usando un assembly.
// Create a reader to read books.xml
XmlReader reader = XmlReader.Create("books.xml");
// Create a writer for writing the transformed file.
XmlWriter writer = XmlWriter.Create("books.html");
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform(reader, writer);
'Create a reader to read books.xml
Dim reader As XmlReader = XmlReader.Create("books.xml")
' Create a writer for writing the transformed file.
Dim writer As XmlWriter = XmlWriter.Create("books.html")
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
' Execute the transformation.
transform.Transform(reader, writer)
URI stringa
È anche possibile specificare l'URI del documento di origine come input XSLT. Un XmlResolver viene usato per risolvere l'URI. È possibile specificare l'oggetto XmlResolver da utilizzare passandolo al metodo Transform. Se un oggetto XmlResolver non viene specificato, il Transform metodo utilizza un valore predefinito XmlUrlResolver senza credenziali.
Nell'esempio seguente viene utilizzato il XslCompiledTransform.Transform metodo per trasformare il file books.xml nel file books.html utilizzando il foglio di stile transform.xsl. I file books.xml e transform.xsl sono disponibili in questo argomento: Procedura: Eseguire una trasformazione XSLT usando un assembly.
// Create and load the transform with script execution enabled.
XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
transform.Load("transform.xsl", settings, null);
// Execute the transformation.
transform.Transform("books.xml", "books.html");
' Create and load the transform with script execution enabled.
Dim transform As XslCompiledTransform = New XslCompiledTransform()
Dim settings As XsltSettings = New XsltSettings()
settings.EnableScript = True
transform.Load("transform.xsl", settings, Nothing)
' Execute the transformation.
transform.Transform("books.xml", "books.html")
Per altre informazioni, vedere Risoluzione delle risorse esterne durante l'elaborazione XSLT.