1.XMl Document
2.Xml Reader
3.XPath Naviagtor
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using System.Diagnostics;
using System.IO;
namespace EffeciencyCheckInXMLReadOperations
{
public partial class Form1 : Form
{
string m_fileName = @"DataFile.xml";
string m_XPath = "configuration/appSettings";
string m_Path = "appSettings";
string m_File_string;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
m_File_string = File.ReadAllText(m_fileName);
}
private IEnumerable
{
Member member = null;
if (!reader.ReadToFollowing(m_Path))
yield return member;
while (reader.Read() && reader.NodeType != XmlNodeType.EndElement)
{
if (!reader.HasAttributes)
continue;
member = new Member();
member.Data = reader.GetAttribute("key", "");
member.Value = reader.GetAttribute("value", "");
yield return member;
}
}
private IEnumerable
{
Member member = null;
xPathNav = xPathNav.SelectSingleNode(m_XPath);
if (xPathNav == null)
yield return member;
xPathNav.MoveToFirstChild();
do
{
if (!xPathNav.HasAttributes)
continue;
member = new Member();
member.Data = xPathNav.GetAttribute("key", "");
member.Value = xPathNav.GetAttribute("value", "");
yield return member;
} while (xPathNav.MoveToNext());
}
private IEnumerable
{
xmlDoc.LoadXml(m_File_string);
Member member = null;
XmlNode node = xmlDoc.SelectSingleNode(m_XPath);
if (node == null)
yield return member;
foreach (XmlNode child in node.ChildNodes)
{
if (child.NodeType == XmlNodeType.Comment)
continue;
member = new Member();
member.Data = child.Attributes[0].Value;
member.Value = child.Attributes[1].Value;
yield return member;
}
}
private void XMLReader_Click(object sender, EventArgs e)
{
DateTime startWatch = DateTime.Now;
StringReader rdr = new StringReader(m_File_string);
using (XmlReader reader = XmlReader.Create(rdr))
{
dataGridView1.DataSource = ReadXML(reader).ToList();
}
DateTime stopWatch = DateTime.Now;
TimeSpan time = stopWatch - startWatch;
MessageBox.Show(time.ToString());
}
private void XPathDocument_Click(object sender, EventArgs e)
{
DateTime startWatch = DateTime.Now;
StringReader rdr = new StringReader(m_File_string);
dataGridView1.DataSource = ReadXML(new XPathDocument(rdr).CreateNavigator()).ToList();
DateTime stopWatch = DateTime.Now;
TimeSpan time = stopWatch - startWatch;
MessageBox.Show(time.ToString());
}
private void XMLDocument_Click(object sender, EventArgs e)
{
DateTime startWatch = DateTime.Now;
dataGridView1.DataSource = ReadXML(new XmlDocument()).ToList();
DateTime stopWatch = DateTime.Now;
TimeSpan time = stopWatch - startWatch;
MessageBox.Show(time.ToString());
}
}
class Member
{
public string Data { get; set; }
public string Value { get; set; }
}
}
XML file:

No comments:
Post a Comment