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
<------------------------------------>
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
--
"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
-- "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