Lecture de fichier XML

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 12 déc. 2008 à 21:05
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 15 déc. 2008 à 15:27
Bonjour je dois lire un fichier XML composé déléments suivants :

----

  ----

    <type>71</type>
    <source>Seat Leon 16-XP-XJ</source>
    <time>2008-10-15T05:55:22.0</time>
    <coordinate>
      <latitude>51.79864</latitude>
      <longitude>4.55908</longitude>
    </coordinate>
    <mileage>33690079</mileage>
    <heading>102</heading>
    <speed>0</speed>
 
etc..

A mon avis, il manque quelque part un BON tuto de lecture de structure XML

La seule methode que j'ai trouvé SANS Linq (que je ne veux pas utiliser) c'est ca :

Est ce la BONNE méthode ?

reader = new XmlTextReader(doc);
 
// Read the Filestring curName="";
string Source = "";
double Latitude;
while(reader.Read()){
XmlNodeType nodeType = reader.NodeType;
switch(nodeType){case XmlNodeType.Element:
curName = reader.Name;
break;
case XmlNodeType.Text:
if(curName.Equals("source")){
Source = reader.Value;
}elseif(curName.Equals("latidude")){double.TryParse(reader.Value, out Latitude);
}elseif(// etc..){// etc...}break;
}}

<!-- / message -->,

----

 ,
<!-- controls -->
<!-- Anomaly: boutons MP et Web -->

4 réponses

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
12 déc. 2008 à 21:11
Oups le couper-coller de mon code a foiré !!

N.B. Il serait quand meme temps que ce forum de développeurs soit capable d'integrer du code ou des fichier joint de maniere simple efficace !!!

      reader = new XmlTextReader(doc);


      // Read the File
      string curName="";
      string Source = "";
      double Latitude;
      while (reader.Read())
      {
        XmlNodeType nodeType = reader.NodeType;
        switch (nodeType)
        {
          case XmlNodeType.Element:
             curName = reader.Name;
            break;
          case XmlNodeType.Text:
            if (curName.Equals("source"))
            {
              Source = reader.Value;
            }
            else if (curName.Equals("latidude"))
            {
              double.TryParse(reader.Value, out Latitude);
            }
            break;
        }
      }
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
15 déc. 2008 à 00:26
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
15 déc. 2008 à 08:15
Magnifique Bidou

C'est le plus beau et complet tutorial que j'ai vu sur XML !
Il devrait faire référence !

Petites suggestion

Tu pourait peut etre completer avec XmlDocument
Et decrire la methode de navigation dans un Noeud obtenu dans un XmlNodeList

Surtout si on ne sais pas a priori si certains éléments sont présent dans le noeud
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
15 déc. 2008 à 15:27
Tant mieux si ça a pu servir! :)
Il a été mis dans la newsletter MSDN donc en quelques sortes il a +/- servi de référence, dumoins dans le temps (ça date quand même...)

Pour la navigation, un XmlReader reste le plus rapide, c'est un reader forward only on a donc les perf. max. mais c'est plus contraignant.
Pour l'instant, j'ai trop de travail pour écrire un truc là dessus, mais c'est vrai que ça pourrait être une bonne idée :)

<hr />
-Blog-
-Site Perso-
0
Rejoignez-nous