Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel werden einige Beispielschritte und Beispielcode zum Navigieren in XML mithilfe der XPathNavigator Klasse in Visual Basic 2005 oder in Visual Basic .NET beschrieben.
Ursprüngliche Produktversion: Visual Basic 2005, Visual Basic .NET
Ursprüngliche KB-Nummer: 301111
Zusammenfassung
In diesem schrittweisen Artikel wird veranschaulicht, wie Sie in XML-Dokumenten (Extensible Markup Language) mit einem XPathNavigator Objekt navigieren, das aus einem XPathDocument Objekt erstellt wird. In diesem Beispiel wird ein XPathDocument Objekt mit XML-Daten geladen, ein XPathNavigator Objekt als Ansicht für die Daten erstellt und der XML-Code angezeigt, indem das Dokument durchlaufen wird.
Eine Microsoft Visual C#-Version dieses Artikels finden Sie unter Verwenden von Visual C# zum Navigieren in XML-Dokumenten mit der XPathNavigator-Klasse.
Anforderungen
In der folgenden Liste sind die empfohlenen Hardware-, Software-, Netzwerkinfrastruktur- und Service Packs aufgeführt, die Sie benötigen:
- Windows Server 2003, Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server oder Windows NT 4.0 Server
- Visual Studio 2005 oder Visual Studio .NET
In diesem Artikel wird davon ausgegangen, dass Sie mit den folgenden Themen vertraut sind:
- XML-Terminologie
- Erstellen und Lesen von XML-Dateien
- XML Path Language (XPath)-Syntax
Verwenden der XPathNavigator-Klasse zum Navigieren in XML
In Visual Studio 2005 oder in Visual Studio. NET erstellen Sie eine Visual Basic 2005- oder Visual Basic .NET-Konsolenanwendung.
Hinweis
In diesem Beispiel wird eine Datei mit dem Namen Books.xmlverwendet. Sie können eine eigene Books.xml Datei erstellen oder das Beispiel verwenden, das in den Schnellstarts von .NET Software Development Kit (SDK) enthalten ist. Wenn Sie die Schnellstarts installiert haben, befindet sich Books.xml im Ordner:
\Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VBAlternativ können Sie diese Datei abrufen, indem Sie die folgende Seite besuchen: Beispiel-XML-Datei (books.xml)
Sie müssen Books.xml in den
\Bin\DebugOrdner kopieren, der sich unter dem Ordner befindet, in dem Sie dieses Projekt erstellt haben.Stellen Sie sicher, dass das Projekt auf den
System.XmlNamespace verweist.Verwenden Sie die
ImportsAnweisung für die NamespacesXmlundXPath, damit Sie Deklarationen in diesen Namespaces später im Code nicht qualifizieren müssen. Sie müssen dieImportsAnweisung vor anderen Deklarationen verwenden.Imports System.Xml Imports System.Xml.XPathDeklarieren Sie die entsprechenden Variablen. Deklarieren Sie ein
XPathDocumentObjekt, das das XML-Dokument und einXPathNavigatorObjekt enthält, um XPath-Ausdrücke auszuwerten und durch das Dokument zu navigieren. Deklarieren Sie ein String-Objekt, das den XPath-Ausdruck enthält. Fügen Sie den Deklarationscode in der Hauptprozedur in Module1 hinzu.Dim nav As XPathNavigator Dim docNav As XPathDocumentLaden eines
XPathDocumentObjekts mit der BeispieldateiBooks.xml. DieXPathDocumentKlasse verwendet XSLT (Extensible Stylesheet Language Transformations), um einen schnellen und leistungsorientierten Cache für die XML-Dokumentverarbeitung bereitzustellen. Es ähnelt dem XML-Dom (Document Object Model), ist aber für die XSLT-Verarbeitung und das XPath-Datenmodell hoch optimiert.'Open the XML. docNav = New XPathDocument("books.xml")Erstellen Sie ein
XPathNavigatorObjekt aus dem Dokument.XPathNavigatorermöglicht es Ihnen, sowohl die Attributknoten als auch die Namespaceknoten in einem XML-Dokument zu durchlaufen.'Create a navigator to query with XPath. nav = docNav.CreateNavigatorWechseln zum Stamm des Dokuments mit der
MoveToRootMethode.MoveToRootlegt den Navigator auf den Dokumentenknoten fest, der den gesamten Knotenbaum enthält.'Initial XPathNavigator to start at the root. nav.MoveToRoot()Verwenden Sie die
MoveToFirstChildMethode, um zu den untergeordneten Elementen des XML-Dokuments zu wechseln. DieMoveToFirstChildMethode wechselt zum ersten untergeordneten Element des aktuellen Knotens. Im Fall derBooks.xmlQuelle wechseln Sie vom Stammdokument in die untergeordneten Elemente, denCommentAbschnitt und den Bookstore-Knoten.'Move to the first child node (comment field). nav.MoveToFirstChild()Verwenden Sie die
MoveToNext-Methode, um Knoten auf Geschwisterebene zu durchlaufen. DieMoveToNextMethode wechselt zum nächsten gleichgeordneten Knoten des aktuellen Knotens.'Loop through all the root nodes. Do ... Loop While nav.MoveToNextVerwenden Sie die
NodeTypeEigenschaft, um sicherzustellen, dass Nur Elementknoten verarbeitet werden, und verwenden Sie dieValueEigenschaft, um die Textdarstellung des Elements anzuzeigen.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.MoveToNextVerwenden Sie die
HasAttributesEigenschaft, um zu bestimmen, ob ein Knoten Attribute aufweist. Sie können auch andere Methoden verwenden, zMoveToNextAttribute. B. um zu einem Attribut zu wechseln und den Wert zu überprüfen.Hinweis
Dieses Codesegment durchläuft nur die Nachkommen des Stammknotens und nicht den gesamten Baum.
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.MoveToNextVerwenden Sie die
ReadLineMethode desConsoleObjekts, um am Ende der Konsolenanzeige eine Pause hinzuzufügen, um die obigen Ergebnisse leichter anzuzeigen.'Pause. Console.ReadLine()Erstellen und ausführen Sie Ihr Konsolenanwendungsprojekt.
Vollständige Codeauflistung
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