XPathNavigator nelle trasformazioniXPathNavigator in Transformations

La classe XPathNavigator fornisce un accesso casuale di sola lettura ai dati ed è progettata per essere usata come input per XSLT (Extensible Stylesheet Language for Transformations).The XPathNavigator class provides read-only random access to data and is designed for use as an input to Extensible Stylesheet Language for Transformations (XSLT). Viene implementata su XPathDocument, XmlDataDocument e XmlDocument.It is implemented on the XPathDocument, XmlDataDocument, and XmlDocument. XPathNavigator è basato sul modello di dati W3C (World Wide Web Consortium) secondo la descrizione fornita nella sezione 5 della raccomandazione XML Path Language (XPath) (informazioni in lingua inglese).The XPathNavigator is based upon the World Wide Web Consortium (W3C) Data Model as described in section 5 of the XML Path Language (XPath) recommendation.

XPathNavigator definisce un modello di cursore per qualsiasi archivio e fornisce query XPath rapide e di sola lettura per qualsiasi archivio dati.The XPathNavigator defines a cursor model over any store and provides fast, read-only XPath queries over any data store. XPathNavigator è inoltre la classe da usare per l'esecuzione di iterazioni sui frammenti di albero risultato.The XPathNavigator is also the class to use for iterating over result tree fragments.

L'API consente di ottenere informazioni dal nodo corrente nell'archivio e di spostare i nodi collegati.The API enables you to get information from the current node in the store and move to connected nodes. XPathNavigator è un modello di tipo cursore che esegue l'attraversamento di un archivio usando un set di metodi Move.The XPathNavigator is a cursor style model that performs traversal over a store using a set of Move methods. XPathNavigator viene sempre posizionato su un nodo.The XPathNavigator is always positioned on a node. Qualsiasi metodo Move che abbia esito negativo lascia XPathNavigator invariato.Any Move method that fails leaves the XPathNavigator unchanged.

XPathNavigator è la classe da usare per l'esecuzione di iterazioni sui frammenti di albero risultato.The XPathNavigator is the class to use for iterating over result tree fragments. Nell'esempio di codice seguente viene illustrata la creazione di un frammento di albero risultato all'interno di un foglio di stile, chiamando la funzione con il parametro, fragment, che contiene l'XMLThe following code sample creates a result tree fragment within a style sheet by calling the function with the parameter, fragment, which contains XML.

test.xsltest.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
                xmlns:msxsl ="urn:schemas-microsoft-com:xslt"  
                xmlns:user="http://www.adventure-works.com"  
                version="1.0">  

<xsl:variable name="fragment">  
    <authorlist>  
       <author>Joe</author>  
    </authorlist>  
</xsl:variable>  

<msxsl:script language="C#" implements-prefix="user">  
<![CDATA[  
   string NodeFragment(XPathNavigator nav)  
   {  
      if (nav.HasChildren)  
        return nav.Value;  
      else  
        return "";  
   }  
]]>  
</msxsl:script>  

<xsl:template match="/">  
     <xsl:value-of select="user:NodeFragment($fragment)"/>  
</xsl:template>  

</xsl:stylesheet>  

test.xmltest.xml

<root>Some text</root>  

Nell'esempio seguente vengono usati il foglio di stile test.xsl e i dati di input test.xml.The following code uses the test.xsl style sheet and test.xml input data.

Imports System  
Imports System.IO  
Imports System.Xml  
Imports System.Xml.Xsl  
Imports System.Xml.XPath  
Imports System.Text  
Public Class sample  

    Public Shared Sub Main()  
        Dim xslt As New XslTransform()  
        xslt.Load("test.xsl")  

        Dim xd As New XPathDocument("test.xml")  

        Dim strmTemp = New FileStream("out.xml", FileMode.Create, FileAccess.ReadWrite)  
        xslt.Transform(xd, Nothing, strmTemp, Nothing)  
    End Sub 'Main  
End Class 'sample  
using System;  
using System.IO;  
using System.Xml;  
using System.Xml.Xsl;  
using System.Xml.XPath;  
using System.Text;  

public class sample  
{  
    public static void Main()  
    {  
        XslTransform xslt = new XslTransform();  
        xslt.Load("test.xsl");  

        XPathDocument xd = new XPathDocument("test.xml");  

        Stream strmTemp = new FileStream("out.xml", FileMode.Create, FileAccess.ReadWrite);  
        xslt.Transform(xd, null, strmTemp, null);  
    }  
}  

OutputOutput

Il risultato della trasformazione è riportato nel file out.xml:The result of the transformation is found in the file out.xml:

<?xml version="1.0" encoding="utf-8"?>Joe  

Vedere ancheSee Also

Implementazione del processore XSLT da parte della classe XslTransformXslTransform Class Implements the XSLT Processor