Writiing an xml file.

levyuk

Well-known member
Joined
Jun 7, 2004
Messages
313
Location
Wales, UK
Programming Experience
3-5
Hi,
I know how to write data to an xml file but the problem is how do I add data to the xml instead of over writing the current data?
VB.NET:
[size=2][color=#0000ff]Protected[/color][/size][size=2] [/size][size=2][color=#0000ff]Sub[/color][/size][size=2] ButtonUpdate_Click([/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] sender [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]Object[/color][/size][size=2], [/size][size=2][color=#0000ff]ByVal[/color][/size][size=2] e [/size][size=2][color=#0000ff]As[/color][/size][size=2] System.EventArgs) [/size][size=2][color=#0000ff]Handles[/color][/size][size=2] ButtonUpdate.Click

[/size][size=2][color=#0000ff]Dim[/color][/size][size=2] textWriter [/size][size=2][color=#0000ff]As[/color][/size][size=2] [/size][size=2][color=#0000ff]New[/color][/size][size=2] XmlTextWriter(Server.MapPath([/size][size=2][color=#800000]"PersonData.xml"[/color][/size][size=2]), [/size][size=2][color=#0000ff]Nothing[/color][/size][size=2])
textWriter.Formatting = System.Xml.Formatting.Indented
[/size][size=2][color=#008000]'Start New Document
[/color][/size][size=2]textWriter.WriteStartDocument()
[/size][size=2][color=#008000]'Write a Comment
[/color][/size][size=2]textWriter.WriteComment([/size][size=2][color=#800000]"This is a comment"[/color][/size][size=2])
[/size][size=2][color=#008000]'Insert Start Element
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"PersonalData"[/color][/size][size=2])
[/size][size=2][color=#008000]'Write Attribute for Start Element
[/color][/size][size=2]textWriter.WriteAttributeString([/size][size=2][color=#800000]"DataType"[/color][/size][size=2], [/size][size=2][color=#800000]"NameAndAddress"[/color][/size][size=2])
[/size][size=2][color=#008000]'Write LastName Element and Data
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"LastName"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]"Levy"[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'Write FirstName Element and Data
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"FirstName"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]"Jon"[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'Write MiddleName Element and Data
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"MiddleName"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'Write Address Element and Data
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"Address"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]"Pandy"[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'Write City Element and Data
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"City"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]"Pandy"[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'Write State Element and Data
[/color][/size][size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"State"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]"RCT"[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'Write ZipCode Elment and Data[/color][/size]
[size=2]textWriter.WriteStartElement([/size][size=2][color=#800000]"ZipCode"[/color][/size][size=2], [/size][size=2][color=#800000]""[/color][/size][size=2])
textWriter.WriteString([/size][size=2][color=#800000]"Postcode"[/color][/size][size=2])
textWriter.WriteEndElement()
[/size][size=2][color=#008000]'End Everything
[/color][/size][size=2]textWriter.WriteEndDocument()
[/size][size=2][color=#008000]'Clean up
[/color][/size][size=2]textWriter.Flush()
textWriter.Close()
[/size][size=2][color=#008000]'Display the XML Document
[/color][/size][size=2]Response.Redirect(Server.MapPath([/size][size=2][color=#800000]"PersonData.xml"[/color][/size][size=2]))
[/size][size=2][color=#0000ff]End[/color][/size][size=2] [/size][size=2][color=#0000ff]Sub
[/color][/size]

That is my current code, all it does is create the file "Persondta.xml" and add the one piece of information. I would like to add more than one piece of information. For instance another person.

How can i do this?

Also how can I retrieve this information into a webform?
 
As far as using dataSets with XML files:
It seems that you are familiar with using dataSets. If that's correct, all you need to do is read the XML file into a dataSet, work with the data (display in textBoxs using databindings, modify, etc...) then just write the dataSet back to the XML file.
VB.NET:
Dim ds As New DataSet()
ds.ReadXml("C:\SomePath\Persondta.xml")
'display in textBoxs using databindings, modify, etc...
ds.WriteXml("C:\SomePath\Persondtq.xml")
This article on CodeProject is where I first learned of the ability to use XML with dataSets: Managing configuration settings persistence in .NET applications. The article also shows how to deal with the possibility that the file doesn't exist and how to create the dataSet/dataTable in such a case.
 
Back
Top