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 :

XML et iterateur


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut XML et iterateur
    Bonjour,

    J'ai plusieurs fichier XML qui sont de la structure suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="utf-8" ?>
    <sub-domain category="01A">
      <category ID="01A01">
        <name ID="01A01">du texte</name>
        <name ID="01A01-01">du texte</name>
        <name ID="01A01-02">du texte</name>
        <name ID="01A01-03">du texte</name>
        <name ID="01A01-04">du texte</name>
        <name ID="01A01-05">du texte</name>
      </category>
      <category ID="01A02">
        <name ID="01A02">du texte</name>
        <name ID="01A02-01">du texte</name>
      </category>
    Pour charger ce fichier afin de pouvoir le parcourir, j'effectue les opérations suivantes:

    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
    String xmlFile = "./areas/" + selDomain + "/" + selSubDomain + ".xml";
                xmldoc = new XmlDocument();
                xmldoc.Load(Server.MapPath(xmlFile));
                XPathNavigator xmlNav;
                XmlNodeList xmlnode = xmldoc.GetElementsByTagName("category");
     
                //the list coutaining sub items in "category" node (with size = total of all "category" nodes
                ArrayList [][] xmlItems = new ArrayList[xmlnode.Count][];
     
                //Page.FindControl("form1").Controls.Add(gdView);
                displaytexte = "<br />";
                for (int i = 0; i < xmlItems.Length; i++)
                    {
                        foreach (XmlNode currentXMLNode in xmlnode.Item(i).ChildNodes)
                        {
                            xmlNav = currentXMLNode.CreateNavigator();
                            while (xmlNav.HasChildren)
                            {
                                //du code: je suis bloqué juste à l'étape au dessus :/;
                             }
                        }
                     }
    J'ai regardé dans la doc, et je sais qu'il faut utiliser un XPathNavigator pour pouvoir effectuer une itération sur des données au formats XML, mais je n'arrive pas à utiliser l'itérateur que j'ai créer pour prendre les childnotes et récupérer leur valeurs :/

    Si quelqu'un pourrait m'aider avec XPath, merci bien !

    L.

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
       string path = Server.MapPath(...);
       XmlDocument xmldoc = new XmlDocument();
       xmldoc.Load(path);
       XmlNode sub_domain = xmldoc.DocumentElement;
       // ... (traitement pour le <sub_domain>)
       foreach(XmlNode category in sub_domain.ChildNodes) {
          // ... (traitement pour chaque <category>)
          foreach(XmlNode name in category.ChildNodes) {
             // ... (traitement pour chaque <name>)
          }
       }
    Pas besoin de XPathNavigator...

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 397
    Par défaut
    Ah d'accord! Merci beaucoup, je vais essayer ça alors

    Simple question, plus par curiosité: à quoi sert XPath et toutes les autres variantes du style XPathNavigator?

    Edit: Par ailleurs, en pressant F1 pour l'aide sur DocumentElement, cela ne m'a rien dit. Qu'est-ce que ça fait exactement? Ca charge les elements en dessous de l'élément root (dans mon cas <category>)?

    C'est juste pour mieux comprendre ce que je fais, je préfère au cas ou je dois refaire des manipulations dans le même style : ) Merci bien !

Discussions similaires

  1. xml -> xsl -> xml
    Par virgile04 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/10/2002, 16h53
  2. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29
  3. delphi XML / HTML caractéres speciaux !
    Par adem dans le forum EDI
    Réponses: 2
    Dernier message: 29/08/2002, 17h48
  4. Débutant XML
    Par viny dans le forum XML/XSL et SOAP
    Réponses: 8
    Dernier message: 25/07/2002, 12h07
  5. Pas de casse dans les XML
    Par :GREG: dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 13h51

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