详解c#读取XML的实例代码

2019-12-30 15:24:36刘景俊

关键是读取属性的时候,你要先知道哪一个结点具有几个属性,然后通过GetAttribute方法来读取.读取属性还可以用另外一种方法,就是用MoveToAttribute方法.可参见下面的代码:


  if (reader.Name == "book")
     {
       for (int i = 0; i < reader.AttributeCount; i++)
       {
         reader.MoveToAttribute(i);
         string str = "属性:" + reader.Name + "=" + reader.Value;
       }
       model.BookType = reader.GetAttribute(0);
       model.BookISBN = reader.GetAttribute(1);
    }

效果如下:

c#读取xml文件,c#,读取xml文件,读取xml文件内容

2.2XmlTextWriter

XmlTextWriter写文件的时候,默认是覆盖以前的文件,如果此文件名不存在,它将创建此文件.首先设置一下,你要创建的XML文件格式,


 XmlTextWriter myXmlTextWriter = new XmlTextWriter(@"....Book1.xml", null);
   //使用 Formatting 属性指定希望将 XML 设定为何种格式。 这样,子元素就可以通过使用 Indentation 和 IndentChar 属性来缩进。
   myXmlTextWriter.Formatting = Formatting.Indented;

然后可以通过WriteStartElement和WriteElementString方法来创建元素,这两者的区别就是如果有子结点的元素,那么创建的时候就用WriteStartElement,然后去创建子元素,创建完毕后,要调用相应的WriteEndElement来告诉编译器,创建完毕,用WriteElementString来创建单个的元素,用WriteAttributeString来创建属性.如下:


  XmlTextWriter myXmlTextWriter = new XmlTextWriter(@"....Book1.xml", null);
        //使用 Formatting 属性指定希望将 XML 设定为何种格式。 这样,子元素就可以通过使用 Indentation 和 IndentChar 属性来缩进。
        myXmlTextWriter.Formatting = Formatting.Indented;
   
        myXmlTextWriter.WriteStartDocument(false);
        myXmlTextWriter.WriteStartElement("bookstore");
   
        myXmlTextWriter.WriteComment("记录书本的信息");
        myXmlTextWriter.WriteStartElement("book");
   
        myXmlTextWriter.WriteAttributeString("Type", "选修课");
        myXmlTextWriter.WriteAttributeString("ISBN", "111111111");
   
        myXmlTextWriter.WriteElementString("author","张三");
        myXmlTextWriter.WriteElementString("title", "职业生涯规划");
        myXmlTextWriter.WriteElementString("price", "16.00");
   
        myXmlTextWriter.WriteEndElement();
        myXmlTextWriter.WriteEndElement();
   
        myXmlTextWriter.Flush();
        myXmlTextWriter.Close();

3.使用Linq to XML.

Linq是C#3.0中出现的一个新特性,使用它可以方便的操作许多数据源,也包括XML文件.使用Linq操作XML文件非常的方便,而且也比较简单.下面直接看代码,