C#写入和读取xml文档

发布时间:2020-05-06编辑:佚名阅读(1080)

写入文档:

        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#写入读取xml文档


鼓掌

0

正能量

0

0

呵呵

0


评论区