[VB.NET] Créer un fichier XML

Créer un fichier XML [VB.NET] - C#/.NET managed - Programmation

Marsh Posté le 07-04-2005 à 16:49:58    

Bonjour
 
Je souhaiterai créer un fichier xml à partir de données contenues dans des textbox
Je ne sais pas du tout comment m'y prendre :s
Est ce que quelqu'un pourrait m'aider ??? :D
 
Merci

Reply

Marsh Posté le 07-04-2005 à 16:49:58   

Reply

Marsh Posté le 07-04-2005 à 16:53:30    

[:msdn] Y'a tout expliqué ;)


Message édité par FlorentG le 07-04-2005 à 16:53:38
Reply

Marsh Posté le 07-04-2005 à 17:02:54    

FlorentG a écrit :

[:msdn] Y'a tout expliqué ;)


 
ben j'ai cherché mais j'ai pas trouvé !  
Je trouve bien la création d'un fichier comme ca mais ce n'est pas ça du tout que je veux faire :s
 
merci

Reply

Marsh Posté le 07-04-2005 à 21:55:48    

Sache que si t'arrive pas à trouver dans la MSDN, t'es mal barré :D Sinon voici le lien utile : http://msdn.microsoft.com/library/ [...] sTopic.asp
 
Y'a une belle méthode 'Save' :)

Reply

Marsh Posté le 12-04-2005 à 10:34:44    

FlorentG a écrit :

Sache que si t'arrive pas à trouver dans la MSDN, t'es mal barré :D Sinon voici le lien utile : http://msdn.microsoft.com/library/ [...] sTopic.asp
 
Y'a une belle méthode 'Save' :)


 
Merci tu es gentil

Reply

Marsh Posté le 12-04-2005 à 10:38:24    

Maintenant j'ai un autre problème !
 
Je souhaiterai obtenir ce fichier xml (c'est un exemple)
 

Code :
  1. <?xml version="1.0"?>
  2. <book genre="novel" ISBN="1-861001-57-5">
  3.   <title>Pride And Prejudice</title>
  4.   <base>
  5.     <price>19.95</price>
  6.     <titre>appolon</titre>
  7.   </base>
  8.   <base>
  9.     <price>15</price>
  10.     <titre>application</titre>
  11.   </base>
  12. </book>


 
Le problème qui se pose c'est que j'obtient celui ci  

Code :
  1. <?xml version="1.0"?>
  2. <book genre="novel" ISBN="1-861001-57-5">
  3.   <title>Pride And Prejudice</title>
  4.   <base>
  5.     <price>15</price>
  6.     <titre>application</titre>
  7.   </base>
  8. </book>


 
Pour créer ce fichier xml jutilise cette procédure :  
 

Code :
  1. Public Sub esssai_xml()
  2.         Dim doc As New XmlDocument
  3.         doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" & _
  4.                     "<title>Pride And Prejudice</title>" & _
  5.                     "</book>" )
  6.         Dim root As XmlNode = doc.DocumentElement
  7.         'Create a new node.
  8.         Dim base As XmlElement = doc.CreateElement("base" )
  9.         Dim elem As XmlElement = doc.CreateElement("price" )
  10.         Dim elem2 As XmlElement = doc.CreateElement("titre" )
  11.         Dim objXmlNode As System.Xml.XmlNode
  12.         Dim objXmlNodeNew As System.Xml.XmlNode
  13.         elem.InnerText = "19.95"
  14.         elem2.InnerText = "appolon"
  15.         'Add the node to the document.
  16.         base.AppendChild(elem)
  17.         base.AppendChild(elem2)
  18.         'root.AppendChild(base) -> Avec cette ligne ou sans cette ligne, le résultat est le même
  19.         'objXmlNode.AppendChild(objXmlNodeNew) Celle ci n'a pas lieu d'être
  20.         elem.InnerText = "15"
  21.         elem2.InnerText = "application"
  22.         'Add the node to the document.
  23.         base.AppendChild(elem)
  24.         base.AppendChild(elem2)
  25.         root.AppendChild(base)
  26.         Dim writer As XmlTextWriter = New XmlTextWriter("essai_xml.xml", Nothing)
  27.         writer.Formatting = Formatting.Indented
  28.         doc.Save(writer)
  29.     End Sub


 
Il y a quelque chose que je ne fais pas correctement, forcément, mais comment puis arriver à un fichier comme cité plus haut (le premier fichier) ?
 
 
Merci d'avance :)


Message édité par flaeticia le 12-04-2005 à 10:46:34
Reply

Marsh Posté le 12-04-2005 à 10:41:36    

Y'a une ligne en commentaire (la 23)

Reply

Marsh Posté le 12-04-2005 à 10:47:12    

FlorentG a écrit :

Y'a une ligne en commentaire (la 23)


 
Le résultat est le meme que cette ligne soit présente ou absente :D

Reply

Marsh Posté le 12-04-2005 à 10:48:24    

Faut peut-être recréer les objets après une première insertion ?

Reply

Marsh Posté le 12-04-2005 à 10:53:23    

FlorentG a écrit :

Faut peut-être recréer les objets après une première insertion ?


 
 :sarcastic:  
 
C'est à dire ?
 

Reply

Marsh Posté le 12-04-2005 à 10:53:23   

Reply

Marsh Posté le 12-04-2005 à 10:53:51    

:??:
 
Bah refaire ' base = doc.CreateElement("base" )'


Message édité par FlorentG le 12-04-2005 à 10:53:59
Reply

Marsh Posté le 12-04-2005 à 11:10:04    

FlorentG a écrit :

:??:
 
Bah refaire ' base = doc.CreateElement("base" )'


 
C'était bien ça !
tu es un dieu tu es trop fort ! :D
 
Sinon voici le code correct :  
 

Code :
  1. Public Sub esssai_xml()
  2.         Dim doc As New XmlDocument
  3.         doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" & _
  4.                     "<title>Pride And Prejudice</title>" & _
  5.                     "</book>" )
  6.         Dim root As XmlNode = doc.DocumentElement
  7.         'Create a new node.
  8.         Dim base As XmlElement = doc.CreateElement("base" )
  9.         Dim elem As XmlElement = doc.CreateElement("price" )
  10.         Dim elem2 As XmlElement = doc.CreateElement("titre" )
  11.         elem.InnerText = "19.95"
  12.         elem2.InnerText = "appolon"
  13.         'Add the node to the document.
  14.         base.AppendChild(elem)
  15.         base.AppendChild(elem2)
  16. base = doc.CreateElement("base" )
  17. elem = doc.CreateElement("price" )
  18. elem2 = doc.CreateElement("titre" )
  19.         elem.InnerText = "15"
  20.         elem2.InnerText = "application"
  21.         'Add the node to the document.
  22.         base.AppendChild(elem)
  23.         base.AppendChild(elem2)
  24.         root.AppendChild(base)
  25.         Dim writer As XmlTextWriter = New XmlTextWriter("essai_xml.xml", Nothing)
  26.         writer.Formatting = Formatting.Indented
  27.         doc.Save(writer)
  28.     End Sub


Message édité par flaeticia le 12-04-2005 à 11:12:12
Reply

Marsh Posté le 12-04-2005 à 11:12:40    

Merci encore ! :D

Reply

Marsh Posté le 12-04-2005 à 11:12:44    

Je ne suis pas un dieu ;) Juste un développeur :D

Reply

Marsh Posté le 12-04-2005 à 11:13:39    

FlorentG a écrit :

Je ne suis pas un dieu ;) Juste un développeur :D


 
Et moi je ne suis pas une développeuse, confirmée on vas dire :D

Reply

Marsh Posté le 12-04-2005 à 12:50:01    

y'a florangé qui s'est trouvé une copine [:pingouino]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 12-04-2005 à 13:24:15    

J'en ai déjà une :o

Reply

Marsh Posté le 13-04-2005 à 10:12:43    

Bonjour !
 
c'est encore moi ! et j'ai un problème :D logique me direz vous  :hello:  
 
J'ai une procédure :  
 

Code :
  1. Public Sub cree_xml(ByVal p_frmParent As Form1, ByVal numero_salle As String, ByVal titre_film As String, ByVal duree As String, ByVal NombreCopieFR As String, ByVal Restrictions As String)
  2.         ' Dim Txtbox_titre_film = p_frmParent.txt_titre_film.Text
  3.         Try
  4.             Dim cls_laet As New cls_laeticia
  5.             ' creation du document xml
  6.             Dim doc As XmlDocument = New XmlDocument
  7.             doc.LoadXml("<cinema></cinema>" )
  8.             doc.Load("document_xml.xml" )
  9.             'Dim root As XmlNode = doc.LastChild
  10.             ' Add a price element.
  11.             Dim flm As XmlElement = doc.CreateElement("film" )
  12.             Dim numSalle As XmlElement = doc.CreateElement("num_salle" )
  13.             Dim Nom_film As XmlElement = doc.CreateElement("nom_film" )
  14.             Dim duree_film As XmlElement = doc.CreateElement("duree_film" )
  15.             Dim nbr_copies_France As XmlElement = doc.CreateElement("nb_copies_france" )
  16.             Dim restrics As XmlElement = doc.CreateElement("restrictions" )
  17.             If p_frmParent.lbl_num_salle.Text = 1 Then
  18.                 flm.RemoveAll()
  19.                 'doc.DocumentElement.AppendChild(flm)
  20.                 '////////////////////\\\\\\\\\\\\\\\\\\\\\
  21.                 numSalle.InnerText = numero_salle
  22.                 Nom_film.InnerText = titre_film
  23.                 duree_film.InnerText = duree
  24.                 nbr_copies_France.InnerText = NombreCopieFR
  25.                 restrics.InnerText = Restrictions
  26.                 '////////////////////\\\\\\\\\\\\\\\\\\\\\
  27.                 flm.AppendChild(numSalle)
  28.                 flm.AppendChild(Nom_film)
  29.                 flm.AppendChild(duree_film)
  30.                 flm.AppendChild(nbr_copies_France)
  31.                 flm.AppendChild(restrics)
  32.                 doc.DocumentElement.AppendChild(flm)
  33.                 '--------------------------------------
  34.                 Dim writer As XmlTextWriter = New XmlTextWriter("document_xml.xml", Nothing)
  35.                 writer.Formatting = Formatting.Indented
  36.                 doc.Save(writer)
  37.             Else
  38.                 doc.Load("document_xml.xml" )
  39.                 flm = doc.CreateElement("film" )
  40.                 numSalle = doc.CreateElement("num_salle" )
  41.                 Nom_film = doc.CreateElement("nom_film" )
  42.                 duree_film = doc.CreateElement("duree_film" )
  43.                 nbr_copies_France = doc.CreateElement("nb_copies_france" )
  44.                 restrics = doc.CreateElement("restrictions" )
  45.                 'doc.DocumentElement.AppendChild(flm)
  46.                 '////////////////////\\\\\\\\\\\\\\\\\\\\\
  47.                 numSalle.InnerText = numero_salle
  48.                 Nom_film.InnerText = titre_film
  49.                 duree_film.InnerText = duree
  50.                 nbr_copies_France.InnerText = NombreCopieFR
  51.                 restrics.InnerText = Restrictions
  52.                 '////////////////////\\\\\\\\\\\\\\\\\\\\\
  53.                 flm.AppendChild(numSalle)
  54.                 flm.AppendChild(Nom_film)
  55.                 flm.AppendChild(duree_film)
  56.                 flm.AppendChild(nbr_copies_France)
  57.                 flm.AppendChild(restrics)
  58.                 doc.DocumentElement.AppendChild(flm)
  59.                 '---------------------------------------
  60.                 ' Save the document to a file and auto-indent the output. 
  61.                 Dim writer As XmlTextWriter = New XmlTextWriter("document_xml.xml", Nothing)
  62.                 writer.Formatting = Formatting.Indented
  63.                 doc.Save(writer)
  64.             End If
  65.         Catch ex As Exception
  66.             MsgBox(ex.Message)
  67.         End Try
  68.     End Sub


 
 
J'explique un peu l'appli
 
Jai des textboxs que je remplie.
Je veux que le contenu des ces textboxs soit inséré dans mon fichier xml, mais pas de n'importe quelle façon !
 
Ceci étant, il jai un problème :  
 
certaines fois, lorsque je lance cette procédure, une msgbox arrive en me précisant que le fichier est en train detre utilisé par un autre processus :  :fou:  
Ca ça m'énerve plus qu'autre chose !
 
puis le second problème, c'est que je souhaiterai, que les noeuds de mon fichiers soit effacés au début, mais visiblement je n'utilise pas la bonne méthode  :??:  
 
Pourriez vous m'aider ?
 
Si vous avez pas compris, faut me dire !

Reply

Marsh Posté le 13-04-2005 à 10:16:32    

Hmmmmmmmmmm miammmm les noms de variables avec des underscore dedans :miam: Hmmmmmmmmmm miammmm les variables du formulaire publiques :miam:
 
 
 
:D

Reply

Marsh Posté le 13-04-2005 à 10:37:45    

FlorentG a écrit :

Hmmmmmmmmmm miammmm les noms de variables avec des underscore dedans :miam: Hmmmmmmmmmm miammmm les variables du formulaire publiques :miam:
 
 
 
:D


 :non:  :bounce:  :bounce:  :bounce:  
 
un peu plus explicite ????

Reply

Marsh Posté le 13-04-2005 à 10:40:57    

Nan, c'était juste pour dire qu'en .NET, par convention, on ne met jamais de variables ou de nom de fonctions avec des underscore. Seules exceptions les méthodes évenementielles, et les membres privés qui ont une propriété à leur nom

Reply

Marsh Posté le 13-04-2005 à 10:44:20    

FlorentG a écrit :

Nan, c'était juste pour dire qu'en .NET, par convention, on ne met jamais de variables ou de nom de fonctions avec des underscore. Seules exceptions les méthodes évenementielles, et les membres privés qui ont une propriété à leur nom


 
ah
 
pourquoi ? ça change quelque chose ?

Reply

Marsh Posté le 13-04-2005 à 10:49:12    

C'est par convention [:spamafote] Si chacun y va de sa méthode ne nommage, on s'y retrouve pas. Ce qui est mon cas avec tous ces underscores, j'ai l'impression de voir du PHP :D

Reply

Marsh Posté le 13-04-2005 à 10:52:20    

FlorentG a écrit :

C'est par convention [:spamafote] Si chacun y va de sa méthode ne nommage, on s'y retrouve pas. Ce qui est mon cas avec tous ces underscores, j'ai l'impression de voir du PHP :D


 
ok  
mais  je vais pas tout reprendre  :non:  
 
est ce que pour ma question, tu vois ?  

Reply

Marsh Posté le 13-04-2005 à 10:53:24    

Tu utilise quoi pour tout virer ?

Reply

Marsh Posté le 13-04-2005 à 11:02:58    

lignes 27/28

Reply

Marsh Posté le 13-04-2005 à 11:04:53    

'If p_frmParent.lbl_num_salle.Text = 1 Then'
 
C'est quoi cette ligne :heink:

Reply

Marsh Posté le 13-04-2005 à 11:34:48    

FlorentG a écrit :

'If p_frmParent.lbl_num_salle.Text = 1 Then'
 
C'est quoi cette ligne :heink:


 
si le numero de la salle c'est 1, alors  
écrit le premier noeud et cie ...
sinon
 
rajoute ces noeuds  
 
comme l'écriture d'un premier noeud est différente d'un rajout :)

Reply

Marsh Posté le 13-04-2005 à 11:37:25    

Mais la propriété Text renvoi un String, que tu compares à un Integer :heink:

If p_frmParent.lbl_num_salle.Text = "1" Then


Ce sera mieux ;)
 
En paramétrant Option Explicit dans ton projet, tu évitera ce genre d'erreurs

Reply

Marsh Posté le 13-04-2005 à 12:34:04    

FlorentG a écrit :

Mais la propriété Text renvoi un String, que tu compares à un Integer :heink:

If p_frmParent.lbl_num_salle.Text = "1" Then


Ce sera mieux ;)
 
En paramétrant Option Explicit dans ton projet, tu évitera ce genre d'erreurs


 
ok  :hello:  
 
ceci étant, est ce que ça peut influer de quelque façon que ce soit ? Parce que lorsque je debuggue ligne par ligne, il passe bien à l'else  :??:

Reply

Marsh Posté le 13-04-2005 à 13:43:29    

Mais il devrait passer au bloc Else, ou non ?

Reply

Marsh Posté le 13-04-2005 à 14:29:01    

FlorentG a écrit :

Mais il devrait passer au bloc Else, ou non ?


 
ben oui  
 
je reprend : peut etre que c'est un problème de ma part
 
si le numéro de salle est 1 alors  
il prend le contenu des textbox et le met dans le fichier xml, de telle sorte à créer un premier noeud film  :  
<film>
dffodfoifhf
</film>
 
voilà
 
sinon,  
 
c la mm opération sauf que l'on considère que l'on est déja passé par la salle 1, et que le noeud film de base, est déja déclaré  ! alors, on plus qu'à faire comme hier  : une sorte de réalocation (appele ca comme tu veux :)) flm = doc.createdocument("film" )....
voilà
 
 :hello:

Reply

Marsh Posté le 13-04-2005 à 17:29:32    

Pas d'idée Flo ? :pt1cable:

Reply

Marsh Posté le 13-04-2005 à 17:57:05    

va voir sur le topic blabla@programmation, il y traine régulièrement, tu pourras lui reposer ta question là bas :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-04-2005 à 18:11:56    

Harkonnen a écrit :

va voir sur le topic blabla@programmation, il y traine régulièrement, tu pourras lui reposer ta question là bas :o


 
moué !  :sarcastic:  
 
Il va venir, je le sens huhu :lol:

Reply

Marsh Posté le 13-04-2005 à 18:13:19    

bah va poster là bas, ils vont pas te bouffer :spamafote:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 13-04-2005 à 18:52:12    

Harkonnen a écrit :

bah va poster là bas, ils vont pas te bouffer :spamafote:


 
je comprend pas : poster quoi ?  :heink:

Reply

Marsh Posté le 13-04-2005 à 23:36:33    

C'est quoi qui ne marche pas encore, de nouveau ? :D

Reply

Marsh Posté le 16-04-2005 à 10:53:04    

FlorentG a écrit :

C'est quoi qui ne marche pas encore, de nouveau ? :D


 
certaines fois, lorsque je lance cette procédure, une msgbox arrive en me précisant que le fichier est en train detre utilisé par un autre processus :    
Ca ça m'énerve plus qu'autre chose !  
 
puis le second problème, c'est que je souhaiterai, que les noeuds de mon fichiers soit effacés au début, mais visiblement je n'utilise pas la bonne méthode     :??:  
 

Reply

Marsh Posté le 21-04-2005 à 11:38:40    

pas d'idée florent G ? :(

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed