C#基础精华06(Linq To XML,读取xml文件,写入xml)

时间:2022-11-27 05:47:28

1.XML概述:

可扩展标记语言XML(eXtensible Markup Language)是一种简单灵活的文本格式的可扩展标记语言,侧重于存储数据。

2.XML特点

xml 标记语言 html 
xml 侧重于存储数据   html显示数据

注释<!-- 注释 -->

xml没有预定义标签  html有

核心类XElement,一个XElement表示一个元素,new XElement(“Order”),创建一个名字为Order的标签,调用Add增加子元素,也是XElement 对象,和TreeView一样。

3.创建XML

  private void button1_Click(object sender, EventArgs e)

         {

             //创建XDocument实例

             XDocument doc =new XDocument();

             //创建根元素

             XElement root=new XElement("Person");

             XElement stu1=new XElement("student");

             //设置根元素的id属性

             stu1.SetAttributeValue("id",);

             //设置子元素的值

             stu1.SetElementValue("name","卡卡西");

             stu1.SetElementValue("gender","男");

             stu1.SetElementValue("Age",);

             //把子元素添加到根元素里

             root.Add(stu1);

             XElement stu2 = new XElement("student");

             stu2.SetAttributeValue("id", );

             stu2.SetElementValue("name", "鸣人");

             stu2.SetElementValue("gender", "男");

             stu2.SetElementValue("Age", );

             root.Add(stu2);

             //把根元素加到XDocument实例

             doc.Add(root);

             //打开保存文件对话框,设置相应的打开样式

             SaveFileDialog sfd=new SaveFileDialog() {Filter = "xml文件(*.xml)|*.xml|所有文件|*.*",Title = "保存文件",FileName = "保存",DefaultExt = "xml",AddExtension = true,InitialDirectory = @"C:\Users\LWP1398\Desktop" };

             if (sfd.ShowDialog()==DialogResult.OK)

             {

                 doc.Save(sfd.FileName);

             }

             MessageBox.Show("ok");

         }

3.1创建好的文件

C#基础精华06(Linq To XML,读取xml文件,写入xml)

4.读取xml

   private void button2_Click(object sender, EventArgs e)

         {

             //打开文件对话框

             OpenFileDialog ofd=new OpenFileDialog() {Filter = "xml文件(*.xml)|*.xml|所有文件(*.*)|*.xml",InitialDirectory = @"C:\Users\LWP1398\Desktop",Title = "打开文件"};

             if (ofd.ShowDialog() == DialogResult.OK)

             {

                 //加载xml文件

                 XDocument doc=XDocument.Load(ofd.FileName);

                 //得到根元素

                 XElement root = doc.Root;

                 //得到根元素下的子元素

                 var eles = root.Elements();

                 //循环遍历每个子元素

                 foreach (XElement item in eles)

                 {

                     //把子元素的信息加到文本框中

                     txtStu.AppendText(item.Name + "===" + item.Attribute("id").Value + "\r\n"); 

                     //循环遍历每个子元素中的信息                  

                     foreach (XElement stu in item.Elements())

                     {

                         txtStu.AppendText(stu.Name + "===" + stu.Value + "\r\n");                        

                     }

                 }

             }

             MessageBox.Show("ok");

         }

4.1读取结果

C#基础精华06(Linq To XML,读取xml文件,写入xml)