发布时间:2020-05-06编辑:佚名阅读(1346)
写入文档:
static void Main(string[] args) { XmlDocument doc = new XmlDocument();//实例化文档对象 if (File.Exists("student.xml"))//如果文件已存在,载入文档 { doc.Load("student.xml"); } else//否则 { XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8","yes");//设置声明 doc.AppendChild(dec); XmlElement root = doc.CreateElement("root");//加入根节点 doc.AppendChild(root); } XmlElement student = doc.CreateElement("student");//插入一个student节点 student.SetAttribute("id", "120");//设置id属性 student.SetAttribute("age", "22");//设置age属性 student.InnerText = "张三";//设置中间文本 doc.DocumentElement.AppendChild(student);//将student节点连接在根节点上 doc.Save("student.xml");//保存文档 }
执行3次后产生的xml文档:
Xml代码
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <root> <student id="120" age="22">张三</student> <student id="120" age="22">张三</student> <student id="120" age="22">张三</student> </root>
使用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(); }
执行效果完全一样。
上一篇:c#裁剪图片
下一篇:excel编辑栏不见了
0人
0人
0人
0人