#region Read/Write Xml
using System.Text;
using System.Xml;
using System.IO;
...
// Reading from XML Reader
private void FromXml(XmlReader reader)
{
bool corrupt = false;
while (!reader.EOF && !corrupt)
{
if (reader.NodeType != XmlNodeType.EndElement)
{
switch (reader.Name)
{
case "BaseElement":
string tmp = reader.GetAttribute("Guid");
m_Guid = new Guid(tmp);
break;
case "EnumType":
string tmp = reader.ReadElementContentAsString();
m_EnumType = (EnumType)Enum.Parse(
typeof(EnumType), tmp);
break;
case "Id":
m_Id = reader.ReadElementContentAsString();
break;
case "Name":
m_SomeThing = reader.ReadElementContentAsString();
break;
case "SomeDate":
string value = reader.ReadElementContentAsString();
DateTime m_SomeDate;
DateTime.TryParse(value, out m_SomeDate);
break;
default:
break;
}
}
try
{
reader.Read();
}
catch (XmlException)
{
corrupt = true;
}
}
}
// Reading from XML String
private void FromXmlString(string xml)
{
XmlTextReader reader = new XmlTextReader(xml, XmlNodeType.Element,
new XmlParserContext(null, new XmlNamespaceManager(
new NameTable()), null, XmlSpace.Default));
try
{
reader.MoveToContent();
FromXml(reader);
}
finally
{
reader.Close();
}
}
// Reading from XMLFile
public void FromXmlFile(string xmlFile)
{
if (File.Exists(xmlFile))
{
XmlTextReader reader = new XmlTextReader(xmlFile);
try
{
reader.MoveToContent();
FromXml(reader);
}
finally
{
reader.Close();
}
}
}
// Writing to XML Writer
public void ToXml(XmlWriter writer)
{
//m_Writer.WriteDocType("", null, null, null);
writer.WriteStartElement("BaseElement");
writer.WriteAttributeString("Guid", m_Guid.ToString());
WriteContent(writer);
writer.WriteEndElement();
writer.Flush();
}
protected virtual void WriteContent(XmlWriter writer)
{
writer.WriteElementString("EnumType", m_EnumType.ToString());
writer.WriteElementString("Id", m_Id);
writer.WriteElementString("Name", m_Name);
writer.WriteElementString("Date", DateTime.Now.ToUniversalTime().ToString());
}
// Writing to XML String
public override string ToXmlString()
{
StringWriter sw = new StringWriter();
XmlTextWriter writer = new XmlTextWriter(sw);
try
{
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
ToXml(writer);
writer.WriteEndDocument();
}
finally
{
writer.Close();
}
return sw.GetStringBuilder().ToString();
}
public void ToXmlFile(string xmlFile, Encoding encoding)
{
XmlTextWriter writer = new XmlTextWriter(xmlFile, encoding);
try
{
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
ToXml(writer);
writer.WriteEndDocument();
}
finally
{
writer.Close();
}
}
#endregion Read/Write Xml
November 30, 2006
Reading and Writing Xml
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment