Hi all,
I have a problem regarding XML file.
I try to manipulate it in ASP.Net/VB.Net.
I have a XML file (oefenPizzas.xml) like this :
<?xml version="1.0" encoding="utf-8" ?>
<pizzas>
<pizza prijs="6">
<name>Napoletana</name>
<topping>tomaten</topping>
<topping>kaas</topping>
<topping>ansjovis </topping>
</pizza>
<pizza prijs="8">
<name>Tonno</name>
<topping>tomaten</topping>
<topping>kaas</topping>
<topping>tonijn</topping>
<topping>uien</topping>
</pizzas>
Let's say I want to delete topping "kaas" in pizza "Tonno". How to do this ?
What I have done is :
I have 1 button and 2 listboxes on my form.
First listbox (loaded in Page_Load) I fill it with the name of Pizzas.
When the name is clicked, let's say "Tonno" is clicked, I fill all the toppings of "Tonno" in the 2nd listbox.
User has to choose one of the toppings which he want to delete (let's say "tomaten"). And click the button.
When the button click, the choosen topping has to delete from XML file.
My code is :
-----------------------------------
Private Sub Page_Load .......
If Not Me.IsPostBack Then
Dim dok As New XmlDocument
dok.Load(Me.Server.MapPath("oefenPizzas.xml"))
Dim piz As XmlElement = dok.DocumentElement
Dim pn As XmlNode
For Each pn In piz.SelectNodes("pizza")
lbxPizza.Items.Add(pn.SelectSingleNode("name/text()").Value)
Next
End If
End Sub
Private Sub lbxPizza_SelectedIndexChanged ........
lbxTopping.Items.Clear()
Dim dok As New XmlDocument
dok.Load(Me.Server.MapPath("oefenPizzas.xml"))
Dim piz As XmlElement = dok.DocumentElement
Dim top As XmlNode
For Each top In piz.SelectNodes("pizza[name='" & _
lbxPizza.SelectedValue & "']/topping/text()")
lbxTopping.Items.Add(top.Value)
Next
End Sub
Private Sub btnRemove_Click ......
If lbxTopping.SelectedValue <> Nothing Then
Dim dk As New XmlDocument
dk.Load(Me.Server.MapPath("oefenPizzas.xml"))
Dim piz As XmlElement = dk.DocumentElement
Dim topp As XmlNode
For Each topping In piz.SelectNodes("pizza[name='" & _
lbxPizza.SelectedValue & "']/topping/text()")
If topp.Value = lbxTopping.SelectedValue Then
topp.ParentNode.RemoveChild(topp)
dk.Save(Me.Server.MapPath("oefenPizzas.xml"))
lbxTopping.Items.Remove(lbxTopping.SelectedValue)
Exit For
End If
Next
End If
End Sub
------------------------------
The result of the code is :
<?xml version="1.0" encoding="utf-8" ?>
<pizzas>
<pizza prijs="6">
<name>Napoletana</name>
<topping>tomaten</topping>
<topping>kaas</topping>
<topping>ansjovis </topping>
</pizza>
<pizza prijs="8">
<name>Tonno</name>
<topping>
</topping>
<topping>kaas</topping>
<topping>tonijn</topping>
<topping>uien</topping>
</pizzas>
---------------
The value ("Tomaten") is gone, but the node still there.
Can anybody help me to solve this problem, please ?
Thanks in advance and regards,
Juliando
I have a problem regarding XML file.
I try to manipulate it in ASP.Net/VB.Net.
I have a XML file (oefenPizzas.xml) like this :
<?xml version="1.0" encoding="utf-8" ?>
<pizzas>
<pizza prijs="6">
<name>Napoletana</name>
<topping>tomaten</topping>
<topping>kaas</topping>
<topping>ansjovis </topping>
</pizza>
<pizza prijs="8">
<name>Tonno</name>
<topping>tomaten</topping>
<topping>kaas</topping>
<topping>tonijn</topping>
<topping>uien</topping>
</pizzas>
Let's say I want to delete topping "kaas" in pizza "Tonno". How to do this ?
What I have done is :
I have 1 button and 2 listboxes on my form.
First listbox (loaded in Page_Load) I fill it with the name of Pizzas.
When the name is clicked, let's say "Tonno" is clicked, I fill all the toppings of "Tonno" in the 2nd listbox.
User has to choose one of the toppings which he want to delete (let's say "tomaten"). And click the button.
When the button click, the choosen topping has to delete from XML file.
My code is :
-----------------------------------
Private Sub Page_Load .......
If Not Me.IsPostBack Then
Dim dok As New XmlDocument
dok.Load(Me.Server.MapPath("oefenPizzas.xml"))
Dim piz As XmlElement = dok.DocumentElement
Dim pn As XmlNode
For Each pn In piz.SelectNodes("pizza")
lbxPizza.Items.Add(pn.SelectSingleNode("name/text()").Value)
Next
End If
End Sub
Private Sub lbxPizza_SelectedIndexChanged ........
lbxTopping.Items.Clear()
Dim dok As New XmlDocument
dok.Load(Me.Server.MapPath("oefenPizzas.xml"))
Dim piz As XmlElement = dok.DocumentElement
Dim top As XmlNode
For Each top In piz.SelectNodes("pizza[name='" & _
lbxPizza.SelectedValue & "']/topping/text()")
lbxTopping.Items.Add(top.Value)
Next
End Sub
Private Sub btnRemove_Click ......
If lbxTopping.SelectedValue <> Nothing Then
Dim dk As New XmlDocument
dk.Load(Me.Server.MapPath("oefenPizzas.xml"))
Dim piz As XmlElement = dk.DocumentElement
Dim topp As XmlNode
For Each topping In piz.SelectNodes("pizza[name='" & _
lbxPizza.SelectedValue & "']/topping/text()")
If topp.Value = lbxTopping.SelectedValue Then
topp.ParentNode.RemoveChild(topp)
dk.Save(Me.Server.MapPath("oefenPizzas.xml"))
lbxTopping.Items.Remove(lbxTopping.SelectedValue)
Exit For
End If
Next
End If
End Sub
------------------------------
The result of the code is :
<?xml version="1.0" encoding="utf-8" ?>
<pizzas>
<pizza prijs="6">
<name>Napoletana</name>
<topping>tomaten</topping>
<topping>kaas</topping>
<topping>ansjovis </topping>
</pizza>
<pizza prijs="8">
<name>Tonno</name>
<topping>
</topping>
<topping>kaas</topping>
<topping>tonijn</topping>
<topping>uien</topping>
</pizzas>
---------------
The value ("Tomaten") is gone, but the node still there.
Can anybody help me to solve this problem, please ?
Thanks in advance and regards,
Juliando