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

VB.NET Discussion :

navigation dans un fichier XML [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut navigation dans un fichier XML
    Bonjour à tous,
    tel un pauvre débutant, je viens vous poser une autre question.
    Avant cela je me suis informé sur internet, mais trop d'infos tuent l'info
    En fait j'ai besoin d'un truc très simple et la doc msdn est bien trop évoluée pour ça
    Voila mon probleme :
    - J'ai un fichier xml :
    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
    <?xml version="1.0" encoding="utf-8"?>
    <root>
      <etats>
        <etat>
          <nometat><![CDATA[Alabama - 1]]></nometat>
          <obama><![CDATA[valeur obama 456]]></obama>
          <romney><![CDATA[valeur romney 123]]></romney>
          <index><![CDATA[index 0 ou 1]]></index>
        </etat>
        <etat>
          <nometat><![CDATA[B-état 2]]></nometat>
          <obama><![CDATA[valeur obama 2]]></obama>
          <romney><![CDATA[valeur romney 2]]></romney>
          <index><![CDATA[0]]></index>
        </etat>
        <etat>
          <nometat><![CDATA[Virginie - 3]]></nometat>
          <obama><![CDATA[obama 3]]></obama>
          <romney><![CDATA[romney 3]]></romney>
          <index><![CDATA[1]]></index>
        </etat>
        <etat>
          <nometat><![CDATA[Caroline du Sud - 4]]></nometat>
          <obama><![CDATA[obama 4]]></obama>
          <romney><![CDATA[romney 4]]></romney>
          <index><![CDATA[0]]></index>
        </etat>
      </etats>
    </root>
    ce fichier xml à une structure et des noms de balises. MAIS j'aurai d'autres fichiers XML ayant la même structure, mais pas les mêmes noms de balises...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="utf-8"?>
    <root>
    	<messages>
    		<message>
    			<rubrique><![CDATA[nom rubrique 1]]></rubrique>
    			<description><![CDATA[description message 1]]></description>
    	</messages>	
    </root>
    Puisque je souhaite créer un parser unique pour tous ces types de fichiers (structure identique), j'aimerai pouvoir naviguer dans mon xml de manière généraliste.
    Exemple :
    je crée mon oobjet XmlDocument.
    si je souhaite attendre la balise index (qlq chose comme ça :
    oobject.mainelement.child.child.child.count(4).value
    traduction :
    myxdoc.<root>.<etats>.<etat>.la4emebalise.value

    Quels sont donc les commande pour naviguer dans le xml sans donner les noms de balises ?

    J'espere que je suis assez clair.
    Merci

    Patrick
    PS : je peux utiliser XmlDocument ou XDocument...

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Bonjour,

    Je te conseil d'aller voir du coté de Linq qui une très bonne lib pour le xml et qui est plutôt simple d'utilisation tu trouvera toutes la doc nécessaire sur les msdn

    Bonne journée.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Merci, mais cela ne m'aide pas beaucoup.
    Juste besoin de savoir s'il est possible de naviguer dans le xml sans forcement notifier explicitement le nom des balises.
    Si oui, comment.
    En effet, la doc msdn est très intéressante, si j'avais 10 jours devant moi. je prendrai le temps de la lire apres le 6 novembre
    merci de ton aide et je l'ai mise en "favorie" dans mon explorer
    Patrick

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Je crois qu'il y a des cours sur linq sur le site de developpez.Com

    L'avantage de linq et qu'il navigue dans le xml sous forme de requête.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Points : 86
    Points
    86
    Par défaut
    Bonjour
    J'ai trouvé qlq chose ici : http://selkis.developpez.com/tutoriels/dotnet/Xmlpart1/
    c'est pas encore ce que je cherche, mais ça me sauve un peu.
    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
            ' création de l'objet XmlDocument et load du fichier xml
            Dim myxdoc As XmlDocument = New XmlDocument
            myxdoc.Load("D:\all_etats.xml") '(Application.StartupPath & "Newsite.XML")
     
            ' se placer sur la balise (tag) parent a lire (root)
            Dim xml_MainRoot As XmlNodeList
            xml_MainRoot = myxdoc.SelectNodes(xml_xpath) 'le texte "root...etat" sera la variable à passer à la class/sub/function
     
            'Définition des variables Nodes
            Dim xml_BlocNode, xml_EnfantNode As XmlNode
     
            For Each xml_BlocNode In xml_MainRoot ' -> pour chaque bloc dans "root/etats/etat"
                For Each xml_EnfantNode In xml_BlocNode.ChildNodes ' -> pour chaque NodeEnfant (nometat, obama...) dans le node (bloc) père
                    MsgBox("contenu = " & xml_EnfantNode.InnerText)
                Next
                MsgBox("bloc suivant")
            Next
    où xml_xpath est le chemin pour aller chercher le "bloc" à traiter.
    Voila...
    Merci
    Patrick

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

Discussions similaires

  1. [AJAX] Navigation dans un fichier XML
    Par General_Batton dans le forum jQuery
    Réponses: 7
    Dernier message: 11/01/2013, 11h57
  2. Insertion dans un fichier xml à partir d'un xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/03/2003, 09h45
  3. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 17h16
  4. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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