Mega Code Archive

 
Categories / C# / XML
 

Read and Write XML Without Loading an Entire Document into Memory

using System; using System.Xml; using System.IO; using System.Text; public class ReadWriteXml {     private static void Main() {         FileStream fs = new FileStream("products.xml", FileMode.Create);         XmlTextWriter w = new XmlTextWriter(fs, Encoding.UTF8);         w.WriteStartDocument();         w.WriteStartElement("products");         w.WriteStartElement("product");         w.WriteAttributeString("id", "01");         w.WriteElementString("name", "C#");         w.WriteElementString("price", "0.99");         w.WriteEndElement();         w.WriteEndElement();         w.WriteEndDocument();         w.Flush();         fs.Close();         Console.WriteLine("Document created.");         fs = new FileStream("products.xml", FileMode.Open);         XmlTextReader r = new XmlTextReader(fs);         while (r.Read()) {            if (r.NodeType == XmlNodeType.Element) {                 Console.WriteLine("<" + r.Name + ">");                 if (r.HasAttributes) {                     for (int i = 0; i < r.AttributeCount; i++) {                         Console.WriteLine("\tATTRIBUTE: " + r.GetAttribute(i));                     }                 }             }else if (r.NodeType == XmlNodeType.Text) {                 Console.WriteLine("\tVALUE: " + r.Value);             }         }     } }