首页 > 代码库 > 操作xml练习

操作xml练习

案例1:获取指定节点的内容


public void XmlTest() { string xmlFileName=AppDomain.CurrentDomain.BaseDirectory+"\\book.xml"; if (File.Exists(xmlFileName)) { XmlReader xmlReader = XmlReader.Create(xmlFileName); while (!xmlReader.EOF) //判断是否是流结尾 { if (xmlReader.MoveToContent() == XmlNodeType.Element && xmlReader.Name == "title") //MoveToContent()检测是否是内容节点,如果不是则后移下一个节点。 XmlNodeType.Element表示特征类型,特性(例如,id=‘123‘)。 { Console.WriteLine(xmlReader.ReadElementString());//获取当前节点的内容 } else { xmlReader.Read(); //Read()方法:循环下一个节点 } } } }

 

案例2:获取数据后数据转换使用ReadElementContentAsInt()、ReadElementContentAsDateTime()、ReadElementContentAsDouble()等方法,这样比先获取该值字符串再转换成其他数据类型的方法效率较高。

 

案例3:写入xml文件(会覆盖)

 public void XmlWriteTest()        {            string xmlFileName = AppDomain.CurrentDomain.BaseDirectory + "\\newBook.xml";                XmlWriterSettings settings = new XmlWriterSettings();                settings.Indent = true;   //是否缩进                settings.NewLineOnAttributes = true;   //是否将属性写入新行                XmlWriter writer = XmlWriter.Create(xmlFileName, settings);   //静态方法实例化XmlWriter对象. XmlWriter会用新文件覆盖已有文件                writer.WriteStartDocument();  //声明xml为1.0的版本号                writer.WriteComment("这是一个注释");   //插入注释                writer.WriteStartElement("book");  //父节点名称                writer.WriteAttributeString("title", "New China");  //父节点的特征                writer.WriteAttributeString("author", "heyaoxing"); //父节点的特征                writer.WriteElementString("what", "I don‘t konw!"); //父节点的特征                writer.WriteStartElement("begin");   //子节点                writer.WriteElementString("beginItem", "asdasd"); //子节点下的内容节点和内容                writer.WriteEndElement();      //子节点的结束标签                writer.WriteElementString("name","234sdf"); //父节点的内容标签和内容                writer.WriteEndElement();     //父节点结束标签                writer.WriteEndDocument();    //声明结束文档                writer.Flush();      //将缓存数据写入流,同时清除当前缓存缓存数据                writer.Dispose();   //清除 witer对象        }