Come spostarsi in XML con la classe XPathNavigator utilizzando Visual Basic

Per la versione Microsoft Visual C# di questo articolo, vedere
308343 .
Per la versione di Microsoft Visual Basic 6.0 di questo articolo, vedere
271619 .

Riepilogo

In questo articolo viene illustrato come passare i documenti con un oggetto XPathNavigator creato da un oggetto XPathDocument Extensible Markup Language (XML). In questo esempio carica un oggetto XPathDocument con dati XML, viene creato un oggetto XPathNavigator come visualizzazione dei dati e viene visualizzato il codice XML spostandosi all'interno del documento.

Requisiti

Nell'elenco seguente sono indicati l'hardware consigliato, il software, l'infrastruttura di rete e i service pack necessari:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 o Microsoft Visual Studio .NET
In questo articolo si presuppone che si abbia familiarità con i seguenti argomenti:
  • Terminologia XML
  • Creazione e lettura di file XML
  • Sintassi XML Path Language (XPath)

Come utilizzare la classe XPathNavigator per spostarsi in XML

  1. In Visual Studio 2005 o Visual Studio. NET, creare un'applicazione Console di Visual Basic .NET di Visual Basic 2005.

    Nota: In questo esempio viene utilizzato un file denominato Books. Xml. È possibile creare un file books. XML oppure è possibile utilizzare il codice di esempio incluso in .NET Software Development Kit (SDK) Quickstarts. Se sono installati i Quickstarts, Books. XML si trova nella seguente cartella:
    \Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    In alternativa, è possibile ottenere questo file, visitare il seguente sito Web:
    È necessario copiare books. XML nella cartella \Bin\Debug, che si trova sotto la cartella in cui è stato creato questo progetto.
  2. Assicurarsi che il progetto fa riferimento lo spazio dei nomi System. XML .
  3. Utilizzare l'istruzione Imports dei nomi Xml e XPath in modo che non sia necessario qualificare dichiarazioni in tali spazi dei nomi nel codice. È necessario utilizzare l'istruzione Imports prima di qualsiasi altra dichiarazione.
    Imports System.XmlImports System.Xml.XPath

  4. Dichiarare le variabili appropriate. Dichiarare un oggetto XPathDocument che contenga il documento XML e un oggetto XPathNavigator per valutare le espressioni XPath e spostarsi nel documento. Dichiarare un oggetto stringa che contenga l'espressione XPath. Aggiungere il codice della dichiarazione nella routine Main di Module1.
    Dim nav As XPathNavigatorDim docNav As XPathDocument

  5. Caricare un oggetto XPathDocument con il file di esempio books. Xml. La classe XPathDocument utilizza XSLT Extensible Stylesheet Language Transformations () per fornire una cache veloce e orientata alle prestazioni per l'elaborazione di documenti XML. È simile a XML documento oggetto Model (DOM) ma altamente ottimizzata per l'elaborazione XSLT e il modello di dati XPath.
    'Open the XML.docNav = New XPathDocument("books.xml")

  6. Creare un oggetto XPathNavigator dal documento. XPathNavigator consente di spostarsi attraverso i nodi di attributi e i nodi dello spazio dei nomi in un documento XML.
    'Create a navigator to query with XPath.nav = docNav.CreateNavigator

  7. Spostarsi alla radice del documento con il metodo MoveToRoot . MoveToRoot imposta lo spostamento al nodo del documento che contiene l'intera struttura di nodi.
    'Initial XPathNavigator to start at the root.nav.MoveToRoot()

  8. Utilizzare il metodo MoveToFirstChild per passare ai figli del documento XML. Il metodo MoveToFirstChild sposta al primo figlio del nodo corrente. Nel caso dell'origine Books. XML, si sta spostando dal documento principale in cui gli elementi figlio, la sezione di commento e il nodo Bookstore.
    'Move to the first child node (comment field).nav.MoveToFirstChild()

  9. Utilizzare il metodo MoveToNext per scorrere i nodi di pari livello. Il metodo MoveToNext sposta di pari livello successivo del nodo corrente.
    'Loop through all the root nodes.Do
    ...
    Loop While nav.MoveToNext

  10. Utilizzare la proprietà NodeType per assicurarsi che di elaborare solo i nodi element e utilizzare la proprietà Value per visualizzare la rappresentazione testo dell'elemento.
    Do    'Find the first element.
    If nav.NodeType = XPathNodeType.Element Then
    'If children exist.
    If nav.HasChildren Then

    'Move to the first child.
    nav.MoveToFirstChild()

    'Loop through all the children.
    Do
    'Display the data.
    Console.Write("The XML string for this child ")
    Console.WriteLine("is '{0}'", nav.Value)
    Loop While nav.MoveToNext

    End If
    End If
    Loop While nav.MoveToNext

  11. Utilizzare la proprietà HasAttributes per determinare se un nodo possiede attributi. È anche possibile utilizzare altri metodi, ad esempio MoveToNextAttribute, per passare a un attributo e verificarne il valore. Si noti che questo segmento di codice illustra solo i discendenti del nodo radice e non l'intera struttura.
    Do    'Find the first element.
    If nav.NodeType = XPathNodeType.Element Then
    'if children exist
    If nav.HasChildren Then

    'Move to the first child.
    nav.MoveToFirstChild()

    'Loop through all the children.
    Do
    'Display the data.
    Console.Write("The XML string for this child ")
    Console.WriteLine("is '{0}'", nav.Value)

    'Check for attributes.
    If nav.HasAttributes Then
    Console.WriteLine("This node has attributes")
    End If
    Loop While nav.MoveToNext

    End If
    End If
    Loop While nav.MoveToNext

  12. Utilizzare il metodo ReadLine dell'oggetto Console per aggiungere una pausa alla fine della visualizzazione della console per visualizzare più rapidamente i risultati sopra indicati.
    'Pause.Console.ReadLine()

  13. Compilare ed eseguire il progetto applicazione Console.

Elenco completo del codice

Imports System.XmlImports System.Xml.XPath

Module Module1

Sub Main()
Dim nav As XPathNavigator
Dim docNav As XPathDocument
docNav = New XPathDocument("books.xml")
nav = docNav.CreateNavigator
nav.MoveToRoot()
'Move to the first child node (comment field).
nav.MoveToFirstChild()

Do
'Find the first element.
If nav.NodeType = XPathNodeType.Element Then
'if children exist
If nav.HasChildren Then

'Move to the first child.
nav.MoveToFirstChild()

'Loop through all the children.
Do
'Display the data.
Console.Write("The XML string for this child ")
Console.WriteLine("is '{0}'", nav.Value)

'Check for attributes.
If nav.HasAttributes Then
Console.WriteLine("This node has attributes")
End If
Loop While nav.MoveToNext

End If
End If
Loop While nav.MoveToNext

'Pause.
Console.ReadLine()

End Sub

End Module

Riferimenti

Per ulteriori informazioni, visitare i seguenti siti Web Microsoft Developer Network (MSDN):Per ulteriori informazioni, visitare il seguente sito Web World Wide Web Consortium (W3C):
XML Path Language (XPath)
Versione 1.0: Raccomandazione W3C 16 novembre 1999
http://www.w3.org/TR/1999/REC-xpath-19991116
Proprietà

ID articolo: 301111 - Ultima revisione: 30 gen 2017 - Revisione: 1

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

Feedback