Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ecrire dans un fichier xml

1 réponse
Avatar
the viper
Bonjour

Je souhaite écrire dans un fichier xml. Les données à inscrire dans le
fichier proviennent d'un TreeView. Le soucis que j'ai actuellement c'est que
ma boucle ne m'inscrit seulement que le dernier de la liste.

Voici mon code
<--------------------------------------------------->
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim Doc As New Xml.XmlDataDocument
Dim i As Integer

i = 0

Dim mElement As Xml.XmlElement

mElement = Doc.CreateElement("playlist")

Doc.AppendChild(mElement)

Dim xmldecl As Xml.XmlDeclaration
xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
Doc.InsertBefore(xmldecl, Doc.DocumentElement)

Doc.Save(Application.StartupPath + "temp.xml")

MsgBox(TreeView1.Nodes.Count)

While i < TreeView1.Nodes.Count()
Doc.AppendChild(mElement)
mElement.SetAttribute("titre", TreeView1.Nodes.Item(i).FullPath)
mElement.InnerText = TreeView1.Nodes.Item(i).FullPath
Doc.Save(Application.StartupPath + "temp.xml")

i = i + 1
End While
End Sub
<------------------------------------>

Merci

1 réponse

Avatar
Behemoth
--
"Qu''as-tu que tu n''aies reçu? Et si tu l''as reçu, pourquoi te
glorifies-tu, comme si tu ne l''avais pas reçu?" (Paul 1Cor 4, 7)


"the viper" a écrit :

Bonjour

Je souhaite écrire dans un fichier xml. Les données à inscrire dans le
fichier proviennent d'un TreeView. Le soucis que j'ai actuellement c'est que
ma boucle ne m'inscrit seulement que le dernier de la liste.

Voici mon code
<--------------------------------------------------->
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim Doc As New Xml.XmlDataDocument
Dim i As Integer

i = 0

Dim mElement As Xml.XmlElement

mElement = Doc.CreateElement("playlist")

Doc.AppendChild(mElement)

Dim xmldecl As Xml.XmlDeclaration
xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
Doc.InsertBefore(xmldecl, Doc.DocumentElement)

Doc.Save(Application.StartupPath + "temp.xml")

MsgBox(TreeView1.Nodes.Count)

While i < TreeView1.Nodes.Count()
Doc.AppendChild(mElement)
mElement.SetAttribute("titre", TreeView1.Nodes.Item(i).FullPath)
mElement.InnerText = TreeView1.Nodes.Item(i).FullPath
Doc.Save(Application.StartupPath + "temp.xml")

i = i + 1
End While
End Sub
<------------------------------------>

Merci


Je verrai qqchose comme cela plutôt :
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim Doc As New Xml.XmlDataDocument
Dim i As Integer

i = 0

Dim mElement As Xml.XmlElement
Dim mRoot As Xml.XmlElement

mRoot = Doc.CreateElement("root")

Doc.AppendChild(mRoot )

Dim xmldecl As Xml.XmlDeclaration
xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
Doc.InsertBefore(xmldecl, Doc.DocumentElement)

MsgBox(TreeView1.Nodes.Count)

While i < TreeView1.Nodes.Count()
mElement = Doc.CreateElement("playlist")
mElement.SetAttribute("titre", TreeView1.Nodes.Item(i).FullPath)
mElement.InnerText = TreeView1.Nodes.Item(i).FullPath
mRoot .AppendChild(mElement)

i = i + 1
End While

Doc.Save(Application.StartupPath + "temp.xml")

End Sub
Ceci étant, je pense qu'un parcours de type arbre du treeview avec
conservation de l'arborescence dans l'XML comme celui-ci le permet aurait été
mieux...
J'espère avoir répondu à la question
Coridalement