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

Windows Forms Discussion :

[VB.Net] Encodage du XML


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 39
    Par défaut [VB.Net] Encodage du XML
    Bonjour,

    Je suis actuellement en train de réaliser un petit processus pour rechercher les positions d'adresses de magasins à l'aide de google maps.

    Voilà mon code :
    Adr = "1+Grand+Place,+Lille,+France"
    XML = New System.Xml.XmlDocument
    Try
    XML.Load("http://maps.google.com/maps/geo?q=" & Adr & "&output=xml&key=xxxxxxx")
    If (XML.GetElementsByTagName("code").Item(0).InnerText = "200") Then
    'On a trouvé l'adresse...
    Pos = XML.GetElementsByTagName("coordinates").Item(0).InnerText
    PosXY = Pos.Split(",")
    Le problème est que le fichier retourné par Google comporte parfois des accents, et que je ne sais pas comment demander au programme de lire avec un autre jeu d'encodage...

    Pourriez vous m'éclairer ?

    Edit : L'erreur se fait sur le load, quand l'adresse possède un accent, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
      <?xml version="1.0" encoding="UTF-8" ?> 
    - <kml xmlns="http://earth.google.com/kml/2.0">
    - <Response>
      <name>99 rue francis de pressence, halluin, France</name> 
    - <Status>
      <code>200</code> 
      <request>geocode</request> 
      </Status>
    - <Placemark>
      <address>99, Rue Francis de Pressencé, 59200 Tourcoing, France</address> 
    - <AddressDetails Accuracy="8" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
    - <Country>
      <CountryNameCode>FR</CountryNameCode> 
    - <AdministrativeArea>
      <AdministrativeAreaName>Nord-Pas-de-Calais</AdministrativeAreaName> 
    - <SubAdministrativeArea>
      <SubAdministrativeAreaName>Nord</SubAdministrativeAreaName> 
    - <Locality>
      <LocalityName>Tourcoing</LocalityName> 
    - <Thoroughfare>
      <ThoroughfareName>99, Rue Francis de Pressencé</ThoroughfareName> 
      </Thoroughfare>
    - <PostalCode>
      <PostalCodeNumber>59200</PostalCodeNumber> 
      </PostalCode>
      </Locality>
      </SubAdministrativeArea>
      </AdministrativeArea>
      </Country>
      </AddressDetails>
    - <Point>
      <coordinates>3.152937,50.735505,0</coordinates> 
      </Point>
      </Placemark>
      </Response>
      </kml>
    Merci,
    A.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 110
    Par défaut
    Effectivement la class XmlDocument ne semble pas avoir de moyen d'indiquer le jeu de caractère.

    Neanmoins tu peux aussi faire un XmlDocument.Load(System.IO.Stream).
    Et dans la classe System.IO.StreamReader tu peux faire un New StreamReader(NomDuFichier,CodePage).

    Comme StreamReader est une classe fille de Stream, ca devrait fonctionner.
    Pour recuperer le codepage adequate tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system.Text.Encoding.GetEncoding(1252)
    1252 etant le code page pour windows de l'europe de l'ouest (donc avec tous les accents de notre langue)

    Je n'ai pas fait le teste mais à priori ca me semble être une solution potentielle.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 39
    Par défaut
    Apparement, le StreamReader n'accepte pas les URL en paramètre d'entrée...

    Citation Envoyé par Tnopy
    Neanmoins tu peux aussi faire un XmlDocument.Load(System.IO.Stream).
    Et dans la classe System.IO.StreamReader tu peux faire un New StreamReader(NomDuFichier,CodePage).

    Comme StreamReader est une classe fille de Stream, ca devrait fonctionner.
    Pour recuperer le codepage adequate tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system.Text.Encoding.GetEncoding(1252)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 39
    Par défaut
    Merci, tu m'a mis sur la voie, le problème est résolu désormais !

    A.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim downloadRequest As System.Net.WebRequest = CType(System.Net.WebRequest.Create("http://maps.google.com/maps/geo?q=" & Adr & "&output=xml&key=xxx"), System.Net.WebRequest)
    Dim downloadResponse As System.Net.WebResponse = CType(downloadRequest.GetResponse(), System.Net.WebResponse)
    downloadRequest = CType(System.Net.WebRequest.Create("http://maps.google.com/maps/geo?q=" & Adr & "&output=xml&key=ABQIAAAAqTVN5-8gnkraDfJIG4hoKxQKPtOHkPpyCC_gPzKkqR_z0uRLhBQgEpEu-gicRc_iOTLL_PtFdqMCAA"), System.Net.WebRequest)
    downloadResponse = CType(downloadRequest.GetResponse(), System.Net.WebResponse)
    XMLStream = downloadResponse.GetResponseStream()
    XMLStreamreader = New IO.StreamReader(XMLStream, System.Text.Encoding.GetEncoding(1252))
    XML.Load(XMLStreamreader)

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

Discussions similaires

  1. [ASP dot Net 1.1][XML/XSL]
    Par CUCARACHA dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/05/2006, 10h10
  2. [XSL][C++]encodage fichier xml
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 22/02/2006, 09h45
  3. [VB.NET] modification fichier XML
    Par betaphp dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/11/2005, 11h13
  4. [XSLT][.NET] Transformer du XML dans un string
    Par Floyd dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 31/10/2005, 15h41
  5. Encodage avec XML
    Par ujoodha dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 25/10/2005, 10h48

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