Jak procházet pomocí jazyka XML s Třída XPathNavigator

Překlady článku Překlady článku
ID článku: 301111 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual C# verzi tohoto článku naleznete v 308343.
Microsoft Visual Basic 6.0 verzi tohoto článku naleznete 271619.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak procházet dokumenty XML (Extensible Markup Language) 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í do data a zobrazí podle walking prostřednictvím dokumentu XML.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace Service Pack:
  • 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á znalost následujících témat:
  • terminologie XML,
  • Vytváření a čtení souborů XML
  • Syntaxe jazyk XML Path (XPath)

Jak používat Třída XPathNavigator přejít XML

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

    Poznámka: Tento příklad používá soubor s názvem Books.XML. Vytvořit vlastní soubor Books.XML nebo použít vzorek, který je součástí Quickstarts .NET Software Development Kit (SDK). Pokud jste nainstalovali Quickstarts Books.xml umístěn v následující složce:
    \Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Tento soubor můžete také získat návštěvou následujícího webu:
    http://samples.gotdotnet.com/quickstart/util/srcctrlwin.aspx?path=/quickstart/howto/samples/Xml/NavigateXmlDocument/cs/&file=books.xml

    Books.XML je třeba zkopírovat do složky \Bin\Debug, která je umístěna ve složce, ve které byl vytvořen tento projekt.
  2. Zkontrolujte, zda projekt odkazuje System.XML oboru názvů.
  3. Použijte příkaz Imports na oborech názvů XML a XPath, takže není nutné kvalifikovat deklarace obory názvů později v kódu. Musíte použít příkaz Imports před všemi deklaracemi.
    Imports System.Xml
    Imports System.Xml.XPath
    					
  4. Odpovídající proměnné deklarovat. Deklarujte objektu XPathDocument podržte dokumentu XML a objekt XPathNavigator vyhodnotit výrazy XPath a přesunout procházení dokumentu. Deklarujte objekt řetězec držet výraz XPath. Přidat kód deklarace hlavní procedury ve Module1.
    Dim nav As XPathNavigator
    Dim docNav As XPathDocument
    					
  5. Načíst objekt XPathDocument s ukázkový soubor Books.XML. Třída XPathDocument používá Extensible Stylesheet Language Transformations (XSLT) poskytuje rychlé a orientovaný výkonu mezipaměti pro zpracování dokumentů XML. Je podobné k DOM (XML Document Object Model), ale je vysoce optimalizována pro zpracování XSLT a dat modelu XPath.
    'Open the XML.
    docNav = New XPathDocument("books.xml")
    					
  6. Vytvořit objekt XPathNavigator z dokumentu. XPathNavigator umožňuje přesunout prostřednictvím uzly atributy a uzly oboru názvů v dokumentu XML.
    'Create a navigator to query with XPath.
    nav = docNav.CreateNavigator
    					
  7. Přesunout kořen dokumentu s metodou MoveToRoot. 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 děti dokumentu XML. Metoda MoveToFirstChild přesune první podřízený aktuálního uzlu. Z zdroj Books.XML jste přesouvání mimo kořenový dokumentu do podřízené položky, části komentář a uzel knihkupectvích.
    'Move to the first child node (comment field).
    nav.MoveToFirstChild()
    					
  9. Pomocí metody MoveToNext iterovat uzly na stejné úrovni úrovni. Metoda MoveToNext přesune další sourozenců aktuální uzel.
    'Loop through all the root nodes.
    Do
        ...
    Loop While nav.MoveToNext
    					
  10. Ujistěte se, že jsou uzly prvek pouze zpracování použít vlastnost NodeType a slouží k zobrazení textu reprezentace prvek vlastnost Hodnota.
    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. Vlastnost HasAttributes zjistit, zda má uzel nějaké atributy. Můžete také použít jiné metody, například MoveToNextAttribute přesunout do atributu a zkontrolovat její hodnotu. Poznámka: Tento segment kódu pouze provede descendents není celý strom a kořenový uzel.
    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 pozastavení na konci zobrazení konzoly snazší zobrazení výsledků výše.
    'Pause.
    Console.ReadLine()
    					
  13. Sestavit a spustit aplikace konzoly projekt.

Úplný výpis kódu

Imports System.Xml
Imports 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):
XML .NET: tříd .NET Framework XML a C# nabízejí jednoduché, škálovatelné dat manipulace
http://msdn.microsoft.com/msdnmag/issues/01/01/xml

Třída XPathNavigator
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxpathxpathnavigatorclasstopic.asp

Třída XPathDocument
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlxpathxpathdocumentclasstopic.asp

Transformace XSLT s třídou výjimka
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconXSLTTransformationsWithXslTransformClass.asp

Příklady XPath
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/1431789e-c545-4765-8c09-3057e07d3041.asp
Další informace naleznete na webu webu Consortium (W3C):
Jazyk XML Path (XPath)
Verze 1.0: Doporučení W3C 16 listopad 1999
http://www.w3.org/TR/1999/REC-xpath-19991116

Vlastnosti

ID článku: 301111 - Poslední aktualizace: 6. prosince 2006 - Revize: 7.5
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Klíčová slova: 
kbmt kbvs2005applies kbvs2005swept kbdownload kbsample kbhowtomaster KB301111 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:301111

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com