Jak XML XPathNavigator třídy pomocí jazyka Visual Basic

Microsoft Visual C# verzi tohoto článku naleznete v tématu
308343 .
Microsoft Visual Basic 6.0 verzi tohoto článku naleznete v tématu
271619 .

Souhrn

Tento článek ukazuje, jak procházet dokumentů jazyka XML (Extensible Markup) s XPathNavigator objekt, který je vytvořen z objektu XPathDocument . Tato ukázka načte XPathDocument objekt s daty XML, vytvoří objekt XPathNavigator jako zobrazení dat a zobrazení procházení dokumentu XML.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a aktualizace service Pack, které potřebujete:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server nebo Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 nebo Microsoft Visual Studio .NET
Tento článek předpokládá, že jste obeznámeni s následující témata:
  • Terminologie jazyka XML
  • Vytváření a čtení souborů XML
  • Syntaxe jazyk XML Path (XPath)

Způsob použití třídy XPathNavigator přejít XML

  1. V aplikaci Visual Studio 2005 nebo Visual Studio. NET, vytvoření aplikace konzoly jazyka Visual Basic .NET a Visual Basic 2005.

    Poznámka: Tento příklad používá soubor s názvem Books.xml. Můžete vytvořit vlastní soubor Books.xml, nebo můžete použít vzorek, který je součástí .NET Software Development Kit (SDK), pomůcky pro začátečníky. Máte-li pomůcky pro začátečníky, nainstalován, Books.xml je umístěn v následující složce:
    \Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Tento soubor také můžete získat návštěvou na následujícím webu:
    Soubor Books.xml je třeba zkopírovat do složky \Bin\Debug, který je umístěn ve složce, ve kterém jste vytvořili tento projekt.
  2. Ujistěte se, že projekt odkazuje System.Xml oboru názvů.
  3. Pomocí příkazu Imports na oborech názvů Xml a XPath , takže není nutné kvalifikovat deklarace ve obory názvů později v kódu. Musíte použít příkaz Imports před všemi ostatními deklaracemi.
    Imports System.XmlImports System.Xml.XPath

  4. Odpovídající proměnné deklarujte. Deklarujte objektu XPathDocument podržte dokumentu XML a prvek XPathNavigator objekt k vyhodnocení výrazů XPath a procházení dokumentu. Deklarujte objekt řetězec držet výraz XPath. Přidáte kód deklarace v hlavní proceduře v Module1.
    Dim nav As XPathNavigatorDim docNav As XPathDocument

  5. Načtěte objekt XPathDocument s ukázkový soubor Books.xml. Třída XPathDocument poskytuje rychlé a orientovaný výkonu mezipaměti pro zpracování dokumentů XML pomocí šablony stylů transformace XSLT (Extensible Language). Je podobný na XML modelu DOM (Document Object), ale je vysoce optimalizována pro zpracování XSLT a XPath datového modelu.
    'Open the XML.docNav = New XPathDocument("books.xml")

  6. Vytvořte objekt XPathNavigator z dokumentu. Prvek XPathNavigator umožňuje procházet atributy uzlů a uzly oboru názvů v dokumentu XML.
    'Create a navigator to query with XPath.nav = docNav.CreateNavigator

  7. Přesunout kořen dokumentu pomocí MoveToRoot metody. MoveToRoot nastaví Navigátor uzel dokumentu, který obsahuje celý strom uzlů.
    'Initial XPathNavigator to start at the root.nav.MoveToRoot()

  8. Pomocí metody MoveToFirstChild přesunout na děti dokumentu XML. Metoda MoveToFirstChild přesune na první podřízenou aktuální uzel. V případě zdroje Books.xml přesouváte mimo kořenový adresář dokumentů do dětí, v části komentář a uzel Bookstore.
    'Move to the first child node (comment field).nav.MoveToFirstChild()

  9. Pomocí metody MoveToNext iterovat uzly na stejné úrovni úrovni. Metoda MoveToNext přesune na další na stejné úrovni jako aktuální uzel.
    'Loop through all the root nodes.Do
    ...
    Loop While nav.MoveToNext

  10. Ujistěte se, že uzly jsou pouze zpracování pomocí vlastnosti NodeType a hodnotu vlastnosti slouží k zobrazení textové reprezentace elementu.
    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. Pomocí vlastnosti HasAttributes k určení, zda má uzel nějaké atributy. Můžete také jiné metody, například MoveToNextAttributepřesunout do atributu a jeho hodnotu kontrolovat. Všimněte si, že tento segment kódu provede pouze podřízených adresářů na kořenový uzel a celý strom.
    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. Použijte metodu ReadLine objektu konzoly přidat přerušení na konci zobrazení konzoly snadněji zobrazovat nad výsledky.
    'Pause.Console.ReadLine()

  13. Sestavte a spusťte projekt konzolové aplikace.

Úplný výpis kódu

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

Odkazy

Další informace naleznete na následujících webech Microsoft Developer Network (MSDN):Další informace naleznete na následujícím webu World Wide Web Consortium (W3C):
Jazyk XML Path (XPath)
Verze 1.0: W3C doporučení 16 listopad 1999
http://www.w3.org/TR/1999/REC-xpath-19991116
Vlastnosti

ID článku: 301111 - Poslední kontrola: 19. 1. 2017 - Revize: 1

Váš názor