M
maw
Hi, could somebody point me in the right direction for adding, removing
and modifying nodes in an xml file programatically using vb.net (.net
framework 2.0)? I have an xml file in the following format which I need
to be able to add and remove records from. (I can not change this xml
file format.)
<country name="United Kingdom">
<city name="City1">
<street name="15 Street Address">
<details>
<postcode>POS COD</postcode>
<province>County1</province>
<c>GB</c>
</details>
</street>
</city>
<city name="City2">
<street name="10 street address">
<details>
<postcode>PST COD</postcode>
<province>County</province>
<c>GB</c>
</details>
</street>
</city>
</country>
I am having problems adding a node without overwriting existing data.
For example I can determine if a Country already exists in the XML file
but when I add the City and the Street items to it using the following
code, it replaces existing city and street data in the xml file rather
than appending new elements.
Sub InsertAddress(ByVal doc As XmlDocument)
Dim addresses As XmlNode = doc.DocumentElement
Dim country As XmlElement
If country_exists() Then
'append
country = doc.SelectSingleNode("//country[@name='Country']")
Else
country = doc.CreateElement("country")
country.SetAttribute("name", "Spain")
End If
Dim city As XmlElement = doc.CreateElement("city")
city.SetAttribute("name", "City3")
Dim street As XmlElement = doc.CreateElement("street")
street.SetAttribute("name", "20 Street Address")
Dim details As XmlElement = doc.CreateElement("details")
Dim postcode As XmlElement = doc.CreateElement("postcode")
postcode.InnerText = "POS COD"
Dim province As XmlElement = doc.CreateElement("province")
province.InnerText = "County3"
Dim c As XmlElement = doc.CreateElement("c")
c.InnerText = "UK"
country.AppendChild(city)
city.AppendChild(street)
street.AppendChild(details)
details.AppendChild(postcode)
details.AppendChild(province)
details.AppendChild(c)
addresses.AppendChild(country)
End Sub
Thanks for any help you can give.
Mark.
and modifying nodes in an xml file programatically using vb.net (.net
framework 2.0)? I have an xml file in the following format which I need
to be able to add and remove records from. (I can not change this xml
file format.)
<country name="United Kingdom">
<city name="City1">
<street name="15 Street Address">
<details>
<postcode>POS COD</postcode>
<province>County1</province>
<c>GB</c>
</details>
</street>
</city>
<city name="City2">
<street name="10 street address">
<details>
<postcode>PST COD</postcode>
<province>County</province>
<c>GB</c>
</details>
</street>
</city>
</country>
I am having problems adding a node without overwriting existing data.
For example I can determine if a Country already exists in the XML file
but when I add the City and the Street items to it using the following
code, it replaces existing city and street data in the xml file rather
than appending new elements.
Sub InsertAddress(ByVal doc As XmlDocument)
Dim addresses As XmlNode = doc.DocumentElement
Dim country As XmlElement
If country_exists() Then
'append
country = doc.SelectSingleNode("//country[@name='Country']")
Else
country = doc.CreateElement("country")
country.SetAttribute("name", "Spain")
End If
Dim city As XmlElement = doc.CreateElement("city")
city.SetAttribute("name", "City3")
Dim street As XmlElement = doc.CreateElement("street")
street.SetAttribute("name", "20 Street Address")
Dim details As XmlElement = doc.CreateElement("details")
Dim postcode As XmlElement = doc.CreateElement("postcode")
postcode.InnerText = "POS COD"
Dim province As XmlElement = doc.CreateElement("province")
province.InnerText = "County3"
Dim c As XmlElement = doc.CreateElement("c")
c.InnerText = "UK"
country.AppendChild(city)
city.AppendChild(street)
street.AppendChild(details)
details.AppendChild(postcode)
details.AppendChild(province)
details.AppendChild(c)
addresses.AppendChild(country)
End Sub
Thanks for any help you can give.
Mark.