ParserXML/Acceder à un noeud précis

Résolu
issousam Messages postés 17 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 3 septembre 2008 - 22 juil. 2008 à 09:53
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 - 22 juil. 2008 à 11:52
Bonjour,

J'ai un problème au niveau de l'accés à un noeud de mon fichier XML...
En effet, mon fichier se structure de la facon suivante : 

<?xml version= "1.0" encoding="UTF-8" ?>



-


<


nvd nvd_xml_version


="


1.2


"


pub_date


="


2008-07-10


">


<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>









-






<


entry modified


="



2008-06-11



"


  published


="



2008-01-15



"


seq


="



2008-0001



"


severity


="



Low



">









-

<


desc


>





 


<


descript source


="

cve

">


Probleme au niveau d'accés. Problème de decryptage. Problème d'assemblage .

</


descript


>





 


</


desc


>





 


</


entry


>








Je voudrais acceder au contenu du noeud descript source (c'est-à-dire recuperer la valeur "Probleme au niveau d'accés. Problème de ....").




J'ai dèjà parser la premiere partie de mon document ( à savoir toutes les valeurs des attributs du noeud entry) mais là je n'y arrive pas (alors qu'il suffirait de faire la même chose vous me direz !!!) et ce n'est pas le même chose pour des raisons que j'ai identifié mais je ne sais pas si ceux sont de bonnes raisons : 


         - Le noeud entry correspond au premier noeud enfant du noeud de la racine : j'utilise les fonctions suivantes 




                         XmlDocument dom = new XmlDocument();




                        dom.Load(MapPath("./nvdcve-2008.xml"));


                        XmlNode NoeudParent = dom.DocumentElement;


                        XmlNode noeud = NoeudParent.FirstChild;


 




      - Je parse le document pour acceder à la valeur de mon noeud et non aux attributs de mon noeud via : 


               


Response.Write(noeud.Attributes["name"].InnerText);








Voila le problème que j'ai -> juste acceder aux informations contenu dans le noeud precis que je veux parser.




Comme je suis novice en programmation C# (et autres), je passe par ce forum qui m'a déjà aider aujourd'hui.




MERCI D'AVANCE




 

4 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
22 juil. 2008 à 10:29
Bonjour,

Pour ce faire, je te laisses jeter un oeil sur les XPath très bien expliqués par Bidou:
http://www.csharpfr.com/tutorial.aspx?ID=536
Tu devrais alors facilement accéder à ton noeud et son text par la même façon.

Bonne journée,


Billou_13
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
22 juil. 2008 à 10:37
En m'intéressant plus au tutorial proposé par Bidou, je suis tombé (d'url en url) à un logiciel qui pourrait t'intéressé: XPathBuilder proposé par le blog de Cyril Durand. Je pense que ca vaut vraiment le coup de jeter un coup d'oeil:
http://blogs.developpeur.org/cyril/archive/2006/05/03/XPathBuilder-construiser-facilement-vos-requet-XPath.aspx

Billou_13
0
issousam Messages postés 17 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 3 septembre 2008
22 juil. 2008 à 11:44
Merci pour ta réponse,

finalement j 'ai reussi à trouve la bonne methode pour acceder à un noeud directement alors que c'etait tout bète !!!! -> Il fallait juste utiliser ChildNodes qui est un tableau où sont stockés la liste des noeud fils du noeud sur lequel on se trouve (en general le noeud parent)...

Pour ton idée, Merci quand même...
Mais l'utilisation de XPath -> j'aime pas trop !!!

P.S. : je marque reponse acceptée vu que c'est une autre soolution possible à mon problème
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
22 juil. 2008 à 11:52
Je t'en tiendrais pas rigueur...
Moi aussi, j'avoue que j'ai du mal à utiliser le XPath lorsque celui-ci dépasse la simple sélection d'un noeud. Quand il faut faire des tests attributs ou autre, je préfère le programmer.

Mais c'est une très très mauvaise habitude et force est de constater qu'il est bien plus pratique de faire ceci en XPath. Donc, aujourd'hui, je me force à étudier le XPath avant tout autre réflexion.

Bonne journée à toi,


Billou_13
0
Rejoignez-nous