IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

VB.net - XML


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Par défaut VB.net - XML
    Bonjour,
    J'ai une lecture d'un fichier GPX de garmin (voir annexe) je souhaite récupérer les attreibuts des WPT.

    Je ne suis pas très à l'aise avec XML, voici un semblant de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Dim geoXml As New XmlDocument()
            geoXml.Load("...\Current.gpx")
            TextBox1.Text = geoXml.SelectSingleNode(?????).InnerText.ToString()
    Je n'e trouve pas la syntaxe pour me positionner sur "Lat", Lng etc...

    Merci d'avance pour votre aide.

    Muller Guy
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2010
    Messages : 151
    Par défaut
    Bonjour,

    Je ne sais pas si c'est la meilleure des solutions, mais j'utiliserais XPath, avec la requête suivante :
    Logiquement le code suivant devrait fonctionner, mais ce n'est pas le cas. Mais c'est déjà un début de piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim geoXPath As New XPath.XPathDocument("C:\Users\Mathieu\Downloads\Current.xml")
    Dim xpathNav As XPath.XPathNavigator = geoXPath.CreateNavigator()
    Dim xpathNI As XPath.XPathNodeIterator = xpathNav.Select("/gpx/wpt/@lat")
    While (xpathNI.MoveNext())
        Console.WriteLine(xpathNI.Current.Value)
    End While
    Peut être que quelqu'un d'autre (ou toi) trouvera l'erreur.

    Edit 19:15
    Je n'ai toujours pas trouvé d'où vient mon erreur (pas normal car la requête XPath est bonne, c'est celle donnée par plusieurs applis), mais voici une solution de secours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Imports System.Text.RegularExpressions
     
    Dim chemin As String = "C:\Users\Mathieu\Downloads\Current.xml"
    Dim match As Match = Regex.Match(My.Computer.FileSystem.OpenTextFileReader(chemin).ReadToEnd, "lat=""([-]?[\d]+[.]?[\d]*)""")
    While (match.Success)
        Console.WriteLine(match.Groups(1).Value)
        match = match.NextMatch
    End While
    @+
    Mat

  3. #3
    Membre actif
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Par défaut
    Un grand merci pour cette info,

    Salutations
    Muller Guy

    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    sFile = "...\Gpx\Current.gpx"
            Dim gpxDoc As XDocument = GetGpxDoc(sfile)
     
            Dim gpx As XNamespace = GetGpxNameSpace()
     
     
            Dim doc = XDocument.Load(sfile)
            For Each result In doc.Descendants(gpx + "wpt")
                Console.WriteLine(result.Element(gpx + "name").Value)
                Console.WriteLine(result.@lat)
                Console.WriteLine(result.@lon)
            Next
    A

  4. #4
    Membre actif
    Inscrit en
    Novembre 2004
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 67
    Par défaut Code pour geocodage
    Je profite de cette demande pour lister du code google map

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
         Dim uriRequest As New Uri("http://maps.googleapis.com/maps/api/geocode/xml?address=rue du verger 21b+chavornay+1373+ch&sensor=false")
            Dim geoRequest As Net.HttpWebRequest = Net.WebRequest.Create(uriRequest)
            Dim geoResponse As Net.HttpWebResponse = geoRequest.GetResponse()
            Dim sr As New StreamReader(geoResponse.GetResponseStream(), Encoding.UTF8)
            'instantiate new xml document to hold the google geo resulting 
     
            Dim geoXml As New XmlDocument()
     
            geoXml.LoadXml(sr.ReadToEnd().ToString())
            geoXml.GetElementsByTagName("address_component")
     
            Form1.TextBox1.Text = geoXml.SelectSingleNode("/GeocodeResponse/result/geometry/location/lat").InnerText.ToString()
            Form1.TextBox2.Text = geoXml.SelectSingleNode("/GeocodeResponse/result/geometry/location/lng").InnerText.ToString()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET][XML] Récupere l'attribut du dernier noeud ds un XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/09/2004, 14h14
  2. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24
  3. [VB.NET] [XML] Modification d'une valeur
    Par kirk80 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/09/2004, 16h15
  4. [VB.NET] XML - Trier des noeuds
    Par nako dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/06/2004, 09h13
  5. [VB.NET] XML et Unicode
    Par Ludog35 dans le forum VB.NET
    Réponses: 10
    Dernier message: 08/06/2004, 13h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo