Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1158 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  lire/écrire du xml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lire/écrire du xml

n°1148032
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 15:38:30  profilanswer
 

hum bon j'ai un blème pour lire un fichier xml, et pour écrire aussi. en fait j'ai un fichier xml formater tel quel:

Code :
  1. <doc>
  2. <requetes id='1'>
  3.    <nom>
  4.       <![CDATA[req1]]>
  5.    </nom>
  6.    <contenu>
  7. ......
  8.    </contenu>
  9. </requetes>
  10. <requetes id='2'>
  11.    <nom>
  12.      <![CDATA[req2]]>
  13.    </nom>
  14.    <contenu>
  15. ......
  16.    </contenu>
  17. </requetes>
  18. </doc>


 
et j'aurai voulu récupéré un noeud "requetes" en fonction de son id pou le supprimer après.?
alors jusque là j'ai pu faire ça comme code mais je n'arrive pas à aller plus loin... svp de l'aide!!!!!
 

Code :
  1. Dim toto As New XmlDataDocument
  2. Dim noeud As XmlNode
  3. toto.Load(fichier)
  4. Dim element As XmlNodeList = toto.GetElementsByTagName("requetes" )
  5. For Each noeud In element
  6. Trace.Warn(noeud.Name)
  7. Next


mon premier problème est que noeud.name ne renvoitps l'id. comment la récup? et enfin comment effacer tout le noeud une fois la bonne id trouvée???
 
svp j'en ai marre de pas trouver (et comprendre aussi ...)  :cry:  
merci


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
mood
Publicité
Posté le 12-07-2005 à 15:38:30  profilanswer
 

n°1148041
FlorentG
Posté le 12-07-2005 à 15:41:29  profilanswer
 

C'est un peu normal, hein ;) Par quelle magie noire, est-ce que noeud.Name pourrait renvoyer l'id ? Y'a des fois :D

n°1148045
chagarou
Posté le 12-07-2005 à 15:44:04  profilanswer
 

Id est un attribut de ton noeud donc tu va le chercher dans la propriété Attributes du XmlNode :o

n°1148058
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 15:51:57  profilanswer
 

FlorentG a écrit :

C'est un peu normal, hein ;) Par quelle magie noire, est-ce que noeud.Name pourrait renvoyer l'id ? Y'a des fois :D


ben ça j'en sais rien, je demande justement. merci de laisser aux débutants de ne pas tout connaitre....
 

chagarou a écrit :

Id est un attribut de ton noeud donc tu va le chercher dans la propriété Attributes du XmlNode :o


ok je viens de trouver ça:
noeud.Attributes("id" ).Value
 
maintenant que je connais le noeud que je veux effacer (avec tout ce qu'il y a dedans... comment je fais????


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148063
FlorentG
Posté le 12-07-2005 à 15:53:25  profilanswer
 

psychatricmeuh a écrit :

ben ça j'en sais rien, je demande justement. merci de laisser aux débutants de ne pas tout connaitre....


C'est pas une question de tout connaître ;) C'est une question de bon-sens. Personnellement, je ne vois pas le lien entre un attribut, et la propriété name d'un node. Surtout après avoir lu la MSDN sur l'attribut Name, qui spécifie bien ce qui est retourné :??:

n°1148065
FlorentG
Posté le 12-07-2005 à 15:54:31  profilanswer
 

As-tu regardé la MSDN au moins ? Dans la class XmlDocument, y'a la méthode RemoveChild qui te permet de le supprimer. Ce sont des méthodes DOM, donc on les retrouve partout (MSXML, JS, PHP, etc...)

n°1148077
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 15:58:17  profilanswer
 

en meme temps je me suis pas plaint du fait que name ne renvoyais pas l'attribut. par contre je demandais comment le récup cet attribut. à savoir aussi qu'il y a 5mn je ne savais meme pas que "id" était un "attribut". donc oui je suis entièrement débutante c'est mon premier jour en XML j'en suis navrée.....
 
sinon je vais voir ce que je peux faire avec RemoveChild, merci


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148084
FlorentG
Posté le 12-07-2005 à 16:00:15  profilanswer
 

Ah ok :sweat: Donc si c'est ton premier jour en XML, voit les notions d'éléments, d'attributs, ainsi que les fonctions DOM

n°1148129
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 16:21:37  profilanswer
 

je trouve petit à petit merci.
pour remove child j'ai essayé en faisant:
toto.removechild(noeud), mais il m'a sorti une erreur comme quoi noeud n'était pas un child de toto. donc je teste en prenant le premier élement de mon fichier ("doc" ): doc.removechild(noeud)... je vais bien voir! ;)
merci!


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148133
FlorentG
Posté le 12-07-2005 à 16:22:15  profilanswer
 

Il faut utiliser l'objet de type XmlDocument

mood
Publicité
Posté le 12-07-2005 à 16:22:15  profilanswer
 

n°1148161
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 16:38:02  profilanswer
 

en effet le "data" est inutile.
bon a priori j'y arrive. il me reste juste un détail:  
une fois le xmldocument modifié, comment l'enregistrer facilement dans le fichier? il me faudrait soit une méthode soit un moyen de passer tout le xmldocument en une string.
zavez une idée sur ce coup là?
merci en tout cas!


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148164
FlorentG
Posté le 12-07-2005 à 16:39:34  profilanswer
 

Je peux te répondre, mais d'abord, je te redirige vers une fabuleuse chose qui répondra à 95% de tes questions : la MSDN [:dawa] Essaye de chercher, et si vraiment tu trouves pas, alors je te file la réponse. Mais essaye de chercher au moins 15 minutes :)


Message édité par FlorentG le 12-07-2005 à 16:39:41
n°1148198
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 17:01:50  profilanswer
 

FlorentG a écrit :

Je peux te répondre, mais d'abord, je te redirige vers une fabuleuse chose qui répondra à 95% de tes questions : la MSDN [:dawa] Essaye de chercher, et si vraiment tu trouves pas, alors je te file la réponse. Mais essaye de chercher au moins 15 minutes :)


 
mouais, si ça répondait vraiment à 95% de mes questions je vous demanderais rien.... j'ai cherché sur la MSDN, et confirmation de ce que je pensais déjà: c'est le bordel, dur dur de trouver ce qu'on veut quand on sait pas le nom de la méthode qu'on cherche... :/ j'ai rarement eu la réponse à ce que je voulais, sauf quand je voulais une def de méthodes par exemple. y a tout ce qu'on veut c'est vrai, mais c'est trop mal foutu pour le moment (en tout cas pour moi :/)
 
ben en attendant j'ai a priori trouver 2/3 solutions (et aucune sur la MSDN :D)


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148207
psychatric​meuh
Empty Walls
Posté le 12-07-2005 à 17:06:41  profilanswer
 

ok j'ai trouvé toto.save(fichier)
par contre j'ai vérifier, oui c'est dna sla msdn, elle m'avait échapper, je fais mon mea culpa, toutes mes excuses pour ce coup ci.... (ce qui n'elève rien à ce que j'en pense :D)
 
merci!


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148599
FlorentG
Posté le 13-07-2005 à 09:21:35  profilanswer
 

psychatricmeuh a écrit :

mouais, si ça répondait vraiment à 95% de mes questions je vous demanderais rien.... j'ai cherché sur la MSDN, et confirmation de ce que je pensais déjà: c'est le bordel, dur dur de trouver ce qu'on veut quand on sait pas le nom de la méthode qu'on cherche... :/ j'ai rarement eu la réponse à ce que je voulais, sauf quand je voulais une def de méthodes par exemple. y a tout ce qu'on veut c'est vrai, mais c'est trop mal foutu pour le moment (en tout cas pour moi :/)
 
ben en attendant j'ai a priori trouver 2/3 solutions (et aucune sur la MSDN :D)


Oula :heink: C'est absolument pas un bordel, c'est super bien organisé, clair, net, y'a plein de tutorials, d'articles, etc... Et quand on sait pas le nom, c'est facile de trouver : les espaces de noms sont assez explicites, le résumé des méthodes permettant de retrouver très vite ce qu'on veut. D'ailleurs rien que le nom suffit en général.
 
C'est tout le contraire de la doc PHP par exemple [:dawa] On voit que M$ a des moyens et des gens pour faire de la doc de qualitaÿ

n°1148623
psychatric​meuh
Empty Walls
Posté le 13-07-2005 à 09:49:29  profilanswer
 

bon d'accord c'est clair que par rapport à du gratuit c'est mieux c'est sur....
mais je maintiens que justement quitte à etre "payant" autant avoir un truc mieux.. enfin c'est que mon avis.
 
un doute m'assaille, perso je parle de la MSDN en ligne, pas celle fournit avec VS, cette dernière j'ai pas la place de l'installée (faut pas chercher à comprendre, mon entreprise joue au con à me filer un PC pourave pour dev...) donc je la connais à peine....


---------------
Those empty walls / When we decline, from the confines of our mind / Don't waste your time, on coffins today / Don't you see their bodies burning?
n°1148629
FlorentG
Posté le 13-07-2005 à 09:51:15  profilanswer
 

On peut pas faire mieux [:spamafote] Sinon en temps normal, c'est presque pareil que la web, en plus rapide bien sûr.

n°1157181
Lanza
Free NaN
Posté le 22-07-2005 à 14:11:20  profilanswer
 

Et puis pour trouver un noeud grace à son attribut id, rien de tel qu'un GetElementById(), plutot qu'un GetElementsByTagName suivi d'un parcours pour trouver le bon.
 
Par contre il faut qu'un id soit unique dans le document (mais si ce n'est pas le cas, le document XML n'est de toute façon pas valide).

n°1157184
FlorentG
Posté le 22-07-2005 à 14:13:10  profilanswer
 

Faut surtout aussi qu'il y ait un attribut déclaré étant de type ID, et que l'ouverture du fichier se fasse en mode validating


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  lire/écrire du xml

 

Sujets relatifs
Ecrire et lire dans un terminallib C pour écrire/lire/ejecter clé USB
Comment ecrire/lire bit à bit dans un fichier en langage c/c++ ?lire et écrire dans un fichier [résolu]
Lire et écrire dans un fichier .iniLire et ecrire des informations sur le port USB
lire / ecrire dans un fichier [resolu]Lire, ecrire et imprimer un fichier pdf
lire et ecrire dans un fichier xml en c++ !!lire et ecrire dans un fichier csv
Plus de sujets relatifs à : lire/écrire du xml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR