La navigation XML avec la classe XPathNavigator à l'aide de Visual Basic

Traductions disponibles Traductions disponibles
Numéro d'article: 301111 - Voir les produits auxquels s'applique cet article
Ancien nº de publication de cet article : F301111
Pour obtenir une version Microsoft Visual C# du présent article, Voir 308343.
Pour obtenir une version Microsoft Visual Basic 6.0 de cette article, reportez-vous à 271619.
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article pas à pas illustre comment naviguer Documents XML (Markup Language) extensible avec un objet XPathNavigator qui est créé à partir d'un objet XPathDocument . Cet exemple charge un objet XPathDocument avec des données XML, crée un objet XPathNavigator en tant que vue sur les données et affiche le code XML en parcourant dans le document.

Configuration requise

Le liste suivante met en évidence le matériel recommandé, de logiciels, de réseau infrastructure et des service packs dont vous avez besoin :
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professionnel, Windows 2000 Server, Windows 2000 Advanced Server ou Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 ou Microsoft Visual Studio .NET
Ceci article suppose que vous êtes familiarisé avec les rubriques suivantes :
  • Terminologie XML
  • Création et lecture de fichiers XML
  • Syntaxe XML Path Language (XPath)

Comment utiliser la classe XPathNavigator pour naviguer dans XML

  1. Dans Visual Studio 2005 ou dans Visual Studio. NET, créez un 2005 Visual Basic ou Visual Basic .net Console Application.

    Remarque : Cet exemple utilise un fichier nommé Books.xml. Vous pouvez créer votre propre fichier Books.xml, ou vous pouvez utiliser l'exemple qui accompagne le .NET software Development Kit (SDK) démarrages rapides. Si vous avez les Démarrages rapides installés, Books.xml se trouve dans le dossier suivant :
    \Program Files\Microsoft.NET\FrameworkSDK\Samples\Quickstart\Howto\Samples\Xml\Transformxml\VB
    Vous pouvez également Vous pouvez obtenir ce fichier en visitant le site Web suivant :
    http://msdn.Microsoft.com/en-us/library/Windows/Desktop/ms762271 (v=vs.85) .aspx

    Vous devez copier Books.xml dans le Dossier \Bin\Debug, qui se trouve sous le dossier dans lequel vous avez créé ce projet.
  2. Assurez-vous que le projet référence l'espace de noms System.Xml .
  3. Utilisez l'instruction Imports sur les espaces de noms Xml et XPath afin que ne pas avoir à rédiger de déclaration sur ces espaces ultérieurement dans votre code. Vous devez utiliser l'instruction Imports avant toute autre déclaration.
    Imports System.Xml
    Imports System.Xml.XPath
    					
  4. Déclarez les variables appropriées. Déclarer un objet XPathDocument pour contenir le document XML et un objet XPathNavigator pour évaluer des expressions XPath et se déplacer dans le document. Déclarer un objet String pour contenir l'expression XPath. Ajoutez le code de déclaration dans la procédure Main dans Module1.
    Dim nav As XPathNavigator
    Dim docNav As XPathDocument
    					
  5. Charger un objet XPathDocument avec le fichier exemple Books.xml. La classe XPathDocument utilise Extensible Stylesheet Language Transformations (XSLT) pour fournir un cache rapide et orienté performances pour le traitement de document XML. Il est similaire à l'objet modèle DOM (Document XML) mais est particulièrement optimisée pour traitement XSLT et le modèle de données XPath.
    'Open the XML.
    docNav = New XPathDocument("books.xml")
    					
  6. Créer un objet XPathNavigator à partir du document. XPathNavigator permet de se déplacer dans les deux n?uds d'attributs et les espace de noms des n?uds dans un document XML.
    'Create a navigator to query with XPath.
    nav = docNav.CreateNavigator
    					
  7. Déplacer vers la racine du document avec la méthode MoveToRoot . Cette méthode place le navigateur vers le n?ud de document qui contient l'intégralité de la arborescence de n?uds.
    'Initial XPathNavigator to start at the root.
    nav.MoveToRoot()
    					
  8. Utilisez la méthode MoveToFirstChild pour atteindre les enfants du document XML. La méthode MoveToFirstChild se déplace vers le premier enfant du n?ud actuel. Dans le cas de la source Books.xml, vous vous éloignez de document racine dans le enfants, la section commentaire et le n?ud Bookstore.
    'Move to the first child node (comment field).
    nav.MoveToFirstChild()
    					
  9. Utilisez la méthode MoveToNext pour parcourir des n?uds frères. La méthode MoveToNext déplace vers le frère suivant du n?ud actuel.
    'Loop through all the root nodes.
    Do
        ...
    Loop While nav.MoveToNext
    					
  10. Utilisez la propriété NodeType pour vous assurer que vous traitez uniquement des n?uds d'élément, et utilisez la propriété Value pour afficher la représentation textuelle de l'élément.
    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. Utilisez la propriété HasAttributes pour déterminer si un n?ud possède des attributs. Vous pouvez permet également d'autres méthodes, telles que MoveToNextAttribute, déplacer vers un attribut et examiner sa valeur. Notez que cette segment de code parcourt uniquement les descendants du n?ud racine et pas la ensemble de l'arborescence.
    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. Utilisez la méthode ReadLine de l'objet Console pour ajouter une pause à la fin de la console affiche plus afficher facilement les résultats ci-dessus.
    'Pause.
    Console.ReadLine()
    					
  13. Générez et exécutez votre projet d'Application Console.

Liste de code complète

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
				

Références

Pour plus d'informations, visitez le site Web Microsoft Developer Network (MSDN) suivant sites :
XML dans .net : classes XML de.NET Framework et C# offrent une manipulation de données simple, évolutif
http://msdn.Microsoft.com/msdnmag/issues/01/01/XML

XPathNavigator classe
http://msdn.Microsoft.com/en-us/library/System.Xml.XPath.XPathNavigator.aspx

XPathDocument classe
http://msdn.Microsoft.com/en-us/library/System.Xml.XPath.XPathDocument.aspx

Transformations XSLT avec la classe XslTransform
http://msdn.Microsoft.com/en-us/library/System.Xml.xsl.XslTransform.aspx

Exemples de XPath.
http://msdn.Microsoft.com/en-us/library/ms256086.aspx
Pour plus d'informations, visitez le site Web de World Wide Web Consortium (W3C) à l'adresse suivante :
XML Path Language (XPath)
Version 1.0 : 16 novembre à la recommandation du W3C 1999
http://www.w3.org/TR/1999/REC-xpath-19991116

Propriétés

Numéro d'article: 301111 - Dernière mise à jour: jeudi 5 juillet 2012 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
Mots-clés : 
kbvs2005applies kbvs2005swept kbdownload kbsample kbhowtomaster kbmt KB301111 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 301111
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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