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 :

recuperer les valeurs d'un fichier xml


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 172
    Points : 60
    Points
    60
    Par défaut recuperer les valeurs d'un fichier xml
    Bonsoir tout le monde je souhaite récupérer les informations de mon fichier xml.

    J'ai crée un fichier xml classique, le voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="utf-8"?>
    <joueurs>
    	<joueur id="1">
    		toto
    	</joueur>
     
    	<joueur id="2">
    		tata
    	</joueur>
    </joueurs>
    Pour récuperer mes données, je souhaite utiliser l' objet XmlDocument.

    Mais je rencontre un probleme pour charger le xml.
    Voici le Code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
      private void button1_Click(object sender, EventArgs e)
            {
                XmlDocument newdoc = new XmlDocument();
     
     
                newdoc.LoadXml("c:/test.xml");
     
     
     
     
            }
    Mon fichier est sur c:

    Il me génére une XmlException onnées non valides au niveau racine. Ligne 1, position 1.

    Je ne comprends pas pourquoi car mon fichier xml, j'arrive a le visualiser au niveau du navigateur.

    Je vous remercie de votre aide

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Essaye d'enlever la ligne suivante dans ton XML:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?xml version="1.0" encoding="utf-8"?>

  3. #3
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Il ne faut pas confondre la méthode LoadXml (pour charger une chaine de caractères) et la méthode Load (pour charger un fichier) !!

    (Je ne vois pas de souci avec l'entête et l'encodage...)
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Salut gentil,

    Tu dois utiliser newdoc.Load qui charge le fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     newdoc.Load("c:/test.xml");
    LoadXml est à utiliser si le code xml se trouve dans une chaine de charactere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    string s=@"<?xml version="1.0" encoding="utf-8"?>
                   <joueurs>
                     <joueur id="1">toto</joueur>
                     <joueur id="2">tata</joueur>
                   </joueurs>"
     
    newdoc.LoadXml(s);

    Pour revenir à ton problème, l'XmlException qui est générée provient d'une erreur dans ton fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" encoding="utf-8"?>
    <joueurs>
    	<joueur id="1">
    		toto          //erreur
    	</joueur>
     
    	<joueur id="2">
    		tata         //erreur
    	</joueur>
    </joueurs>
    voici les changements à apporter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <joueurs>
    	<joueur id="1">toto</joueur>
     
    	<joueur id="2">tata</joueur>
    </joueurs>
    une petite astuce su tu travail avec VS, si ton fichier xml est ouvert tu fais un clic droit sur ton code xml et tu selectione le mode data cela évite des erreur de code.

    Voila

  5. #5
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Désolé, l'exception ne provient que du fait que la chaine "c:/..." n'est pas elle-même un document XML valide (pas de racine...).

    Quant aux sauts de lignes dans le document XML, ils sont tout à fait valides même s'ils peuvent être gênants pour les traitements à suivre (en XSL-T, il faut appliquer la fonction normalize-space() pour les enlever le moment voulu...)
    Formulaires XForms sur tous navigateurs sans extension à installer (architecture XRX) : http://www.agencexml.com/xsltforms/

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Tu as raison je vien de faire le test et les sauts de ligne passe. Désolé pour la mauvaise info.

    Donc le seul problème est de remplacer LoadXml par Load

Discussions similaires

  1. Recuperer les valeur d'un fichier soap
    Par mohmoh123 dans le forum Services Web
    Réponses: 0
    Dernier message: 11/04/2013, 23h23
  2. Recuperer les donnees d'un fichier XML
    Par LePassager dans le forum ASP.NET
    Réponses: 0
    Dernier message: 02/06/2009, 03h11
  3. Réponses: 0
    Dernier message: 26/03/2009, 10h44
  4. recuperer les donnees d'un fichier xml
    Par m3allem001 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 11/03/2009, 10h08
  5. Réponses: 9
    Dernier message: 05/11/2007, 11h05

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