示例:
使用XmlTextReader从头到尾阅读xml文档,比较适合大量数据读取
static void Main(string[] args)
{
XmlTextReader reader;
if (File.Exists("student.xml"))//如果文件已存在,载入文档
{
reader = new XmlTextReader("student.xml");
}
else//否则
{
return;
}
int count = 0;
while (reader.Read())//阅读下一个
{
if (reader.Name == "student")
{
//显示读取的属性和中间文本
Console.WriteLine(reader.GetAttribute("id") + " " + reader.GetAttribute("age") + " " + reader.ReadString());
count++;
}
}
reader.Close();//关闭阅读器
Console.WriteLine("Count is " + count);
Console.ReadKey();
}
当然也可以用xmlDocument进行结构化读取,但是读取前系统会把整个文档的结构获取进来
static void Main(string[] args)
{
XmlDocument doc = new XmlDocument();
if (File.Exists("student.xml"))//如果文件已存在,载入文档
{
doc.Load("student.xml");
}
else//否则
{
Console.WriteLine("文档不存在!");
Console.ReadKey();
return;
}
XmlNodeList list = doc.DocumentElement.SelectNodes("student");//读取根节点的所有子节点,放到XmlNodeList中
foreach (XmlNode node in list)//从list中遍历所有节点
{
XmlElement ele = (XmlElement)node;//节点可以有中间文本但是没有属性值,所以要先转成element才能读出属性值
Console.WriteLine(ele.GetAttribute("id") + " " + ele.GetAttribute("age") + " " + ele.InnerText);//读取数据/显示
}
Console.ReadKey();
}











