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

ASP.NET Discussion :

Erreur Parsing xml à cause de l'entete


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut Erreur Parsing xml à cause de l'entete
    Bonjour,

    Je recupere un fichier xml à partir d'un web service
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="utf-16"?>
    <CurrentWeather>
      <Location>Lille, France (LFQQ) 50-34N 003-06E 52M</Location>
      <Time>Feb 08, 2010 - 09:00 AM EST / 2010.02.08 1400 UTC</Time>
      <Wind> from the NE (040 degrees) at 9 MPH (8 KT):0</Wind>
      <Visibility> 2 mile(s):0</Visibility>
      <SkyConditions> mostly cloudy</SkyConditions>
      <Temperature> 39 F (4 C)</Temperature>
      <DewPoint> 37 F (3 C)</DewPoint>
      <RelativeHumidity> 93%</RelativeHumidity>
      <Pressure> 29.74 in. Hg (1007 hPa)</Pressure>
      <Status>Success</Status>
    </CurrentWeather>
    J'essaie de le parcourir et d'afficher les elements:
    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
    String DataDisplayed = null ;
                StreamWriter srd = File.CreateText("WeatherData.xml");
     
                DataDisplayed = Weather.GetWeather(sVille.ToLower() , sPays.ToLower());
                srd.WriteLine(DataDisplayed);
                srd.Close() ;
                FileStream streamData = new FileStream("WeatherData.xml", FileMode.Open) ;
     
                XmlTextReader readerD = new XmlTextReader(streamData);
                readerD.WhitespaceHandling = WhitespaceHandling.None ;
     
                // Parse the file and display each of the nodes.
                while (readerD.Read()) 
                {
                    if(readerD.Name == "Location")
                        richTextBoxWeather.Text = readerD.ReadString();
                    if(readerD.Name == "Time")
                        richTextBoxWeather.Text = readerD.ReadString();
                    if(readerD.Name == "Wind")
                        richTextBoxWeather.Text = readerD.ReadString();
                    if(readerD.Name == "Visibility")
                        richTextBoxWeather.Text = readerD.ReadString();
                    if(readerD.Name == "Temperature")
                        richTextBoxWeather.Text = readerD.ReadString();
                }
                readerD.Close();
    (je ne suis pas sur non plus que c'est la meilleur façon de faire)

    mais au moment de l'execution, j'ai une erreur qui pointe sur : while (readerD.Read())
    et qui m'indique
    Marque d'ordre d'octet Unicode manquante. Impossible de basculer en Unicode
    Je pense que c'est la premiere ligne du fichier XML qui pose le probleme, comment puis je alors la bypasser ou bien ne pas l'ecrire dans le fichier dés le debut ?
    Merci.

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Quand on travaille avec des encodages différents il est souhaitables d'être explicite. Si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Weather.GetWeather(sVille.ToLower(), sPays.ToLower())
    te renvoi de l'UTF-16, il faut que tu le précises (ou que tu le convertisses) au moment de l'écrire dans le fichier qui doit probablement être en UTF-8.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut
    effectivement, lorsque je change manuellement l'encodage en utf-8 ça passe sans probleme...
    et donc je suis entrain de chercher depuis tout à l'heure comment convertir l'encodage au moment de la lecture du fichier XML de utf-16 à utf-8

  4. #4
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut
    sinon, si quelqu'un saurait comment faire cela ou bien comment sauter carrement la premiere ligne, ça serait sympa...

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 114
    Par défaut
    j'ai essayé de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    XmlParserContext myParserContext = new XmlParserContext(null, null, "",
                XmlSpace.Default, System.Text.Encoding.UTF8);
     
                FileStream streamData = new FileStream("WeatherData.xml", FileMode.Open) ;
     
                XmlTextReader readerD = new XmlTextReader(streamData, XmlNodeType.Document,myParserContext);
    mais là j'ai une erreur dans la toute premiere ligne...&

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Tu peux essayer de convertir avec
    "Winter is coming" (ma nouvelle page d'accueil)

Discussions similaires

  1. [JDOM] Erreur lors du parse d'un xml à cause des espaces
    Par tupac25 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 12/05/2010, 10h26
  2. Capturer les erreurs de parsing xml
    Par nicolas7777 dans le forum Modules
    Réponses: 0
    Dernier message: 10/02/2008, 21h17
  3. erreur de parsing XML
    Par root76 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/02/2007, 17h57
  4. Parse error à cause d'un tag <?xml
    Par genova dans le forum Langage
    Réponses: 2
    Dernier message: 10/09/2006, 17h00
  5. [SAX] Erreur de parsing XML avec SAX
    Par philobedo dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 02/08/2006, 13h49

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