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

C# Discussion :

Parcours d'un fichier XML venat d'un webService


Sujet :

C#

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut Parcours d'un fichier XML venat d'un webService
    Bonjour à tous,
    Voilà j'ai un petit problème, je n'arrive pas à parcourir un fichier XML venant d'un webservice.

    Voici mon code :

    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
    37
    38
    39
    40
    41
    42
    43
    public string Lecture (string elevation){
     
                // Create a request using a URL that can receive a post. 
                WebRequest request = WebRequest.Create(elevation);
                // Set the Method property of the request to POST.
                request.Method = "POST";
                // Create POST data and convert it to a byte array.
                string postData = "This is a test that posts this string to a Web server.";
                byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                // Set the ContentType property of the WebRequest.
                request.ContentType = "application/x-www-form-urlencoded";
                // Set the ContentLength property of the WebRequest.
                request.ContentLength = byteArray.Length;
                // Get the request stream.
                Stream dataStream = request.GetRequestStream();
                // Write the data to the request stream.
                dataStream.Write(byteArray, 0, byteArray.Length);
                // Close the Stream object.
                dataStream.Close();
                // Get the response.
                WebResponse response = request.GetResponse();
                // Get the stream containing content returned by the server.
                dataStream = response.GetResponseStream();
                // Open the stream using a StreamReader for easy access.
                StreamReader reader = new StreamReader(dataStream);
                // Read the content.
                string responseFromServer = reader.ReadToEnd();
     
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(responseFromServer);
                XmlNode donnees;
                XmlElement root = xmlDoc.DocumentElement;
                donnees = root.SelectSingleNode("descendant::result[elevation]");
     
     
                alt = donnees.ToString();
                // Clean up the streams.
                reader.Close();
                //dataStream.Close();
                response.Close();
     
                return alt;
            }

    Je récupère donc de mon Webservice une string du type XML:

    <ElevationResponse>
    <status>OK</status>
    <result>
    <location>
    <lat>45.4504618</lat>
    <lng>4.3970448</lng>
    </location>
    <elevation>492.3283081</elevation>
    </result>
    </ElevationResponse>
    Ensuite, je parcours mon fichier et retourne l'altitude pour pouvoir le mettre dans un autre fichier XML.

    Suite à l'éxécution de mon script, ceci me renvoi la valeur :
    System.Xml.XmlElement

    Est-ce que quelqu'un pourrait m'expliquer l'erreur que j'ai faite et comment y remédier

    Merci d'avance.

    Cordialement

  2. #2
    Membre éclairé Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Par défaut
    Vous faites tout comme il faut ! ... sauf la récupération de la valeur.


    De tête, il faudrait utiliser .InnerText()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alt = donnees.InnerText();

    EDIT : Pour expliquer votre erreur :

    vous récupérez un objet XmlElement, donc un type complexe (qui n'est pas juste une string ou un int). Lorsque vous faites un .ToString() d'un complexe, vous avez 80% de chances d'obtenir uniquement le nom du type en chaîne de caractère.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    Merci beaucoup, je test cela tout de suite

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Par défaut
    J'ai encore une petite erreur.
    Je reçois les données du noeud lat, lng et elevation.
    Cela doit être due à "SelectSingleNode".
    Merci beaucoup en tout cas

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

Discussions similaires

  1. [WD10] Parcours d'un fichier XML
    Par nuFox dans le forum WinDev
    Réponses: 2
    Dernier message: 13/04/2009, 11h40
  2. [XSLT] parcours d'un fichier XML
    Par kakid dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/05/2008, 18h14
  3. Parcours d'un fichier XML
    Par Amiba dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 19/09/2007, 14h31
  4. [DOM] Besoin d'optimiser le parcours d'un fichier XML
    Par stardeus dans le forum Format d'échange (XML, JSON...)
    Réponses: 19
    Dernier message: 08/04/2007, 17h04

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