zoukankan      html  css  js  c++  java
  • C#温故而知新学习系列之XML编程—Xml写入器XmlWriter类(三)

      前言

       与XmlReader类相对应,.NETFramework也提供了一个以快速的,非缓存的,只向前的,动态写入XML数据的类即XmlWriter类,可以将XmlWriter类理解为与XmlReader类对等的类

      阅读目录

      一:写入XML文档的步骤

      二:实现步骤

        一:写入XML文档的步骤

      为了写入属性,元素,需要调用一个WriteStrat某某()方法和WriteEnd()某某方法,在使用XmlWriter类的时候并不是简单的写入一个元素,需要先写入开始标签,然后写入内容,最后写入结束标签,因此必须要跟踪在XML文档中所处的位置,以保证在正确的时间调用正确的结束方法

      1:使用XmlWriter类的Create()方法创建该类的实例,并将XML文档名称作为参数传入方法

      2:开始文档

      3:写入开始标签

      4:写入内容

      5:写入结束标签

      6:结束文档;

      实例 

      二:实现步骤

      1:XML文件编写

       <?xml version="1.0" encoding="utf-8" ?>

      2:代码文件编写

      Form1.cs

       using System;
      using System.Collections.Generic;
      using System.ComponentModel;
      using System.Data;
      using System.Drawing;
      using System.Text;
      using System.Windows.Forms;
      using System.Xml;

      namespace XmlWriterClass
      {
            public partial class Form1 : Form
            {
                public Form1()
                {  
                    InitializeComponent();
                }

          }

              private void Form1_Load(object sender, EventArgs e)
              {
                    XmlWriter xml_doc = XmlWriter.Create("XmlFile.xml");
                      //第一种写入元素方法
                    //写版本为“1.0”的XML声明
                    xml_doc.WriteStartDocument();
                    //写入元素的名称以及它的值,注意这种写入元素的方法,是不能在其上面写入任何属性的
                    xml_doc.WriteElementString("Title", "C#教程");
                    //关闭文档
                    xml_doc.WriteEndDocument();
                    xml_doc.Flush();
                    xml_doc.Close(); 

            

             //第二种写入元素方法
                    //写版本为“1.0”的XML声明
                    xml_doc.WriteStartDocument();
                    //写指定的开始标记,这种写入元素的方法,是可以在其上面写入属性的
                    xml_doc.WriteStartElement("Books");
                    //关闭元素
                    xml_doc.WriteEndElement();
                    //关闭文档
                    xml_doc.WriteEndDocument();
                    xml_doc.Flush();
                    xml_doc.Close();

            

             //第一种写入属性方法
                    xml_doc.WriteStartDocument();

             //写入<Books/>元素
                    xml_doc.WriteStartElement("Books");

             //写入属性的名称
                    xml_doc.WriteStartAttribute("issue");

             //写入属性的值
                    xml_doc.WriteValue("清华出版社");

             //关闭上一个xml_doc.WriteStartAttribute("issue")的 调用
                    xml_doc.WriteEndAttribute();

             //关闭<Books/>元素
                    xml_doc.WriteEndElement();
                    xml_doc.WriteEndDocument();
                    xml_doc.Flush();
                    xml_doc.Close();

            

             //第二种写入属性方法

             xml_doc.WriteStartDocument();
                    xml_doc.WriteStartElement("Books");

             //一次性写入属性的名称和值
                    xml_doc.WriteAttributeString("issue", "清华出版社");
                    xml_doc.WriteEndElement();
                    xml_doc.WriteEndDocument();
                    xml_doc.Flush();
                    xml_doc.Close();

            

             //结合使用

              xml_doc.WriteStartDocument();
                    //写入<Books/>元素和属性值,在这里我们不采用xml_doc.WriteElementString()方法来写入元素,因为我们还要在我们写入的元素上面写入属性,而xml_doc.WriteElementString()这种写入元素的方法,是不能在其上面写入任何属性的
                    xml_doc.WriteStartElement("Books");
                    xml_doc.WriteAttributeString("issue", "清华出版社");
                    //写入<Titles/>元素和属性值,注意我们这里用了另外一种写入属性的方法
                    xml_doc.WriteStartElement("Title");
                    xml_doc.WriteStartAttribute("OthorName");
                    xml_doc.WriteValue("C#入门与精通");
                    xml_doc.WriteEndAttribute();
                    xml_doc.WriteValue("C#基础");
                    xml_doc.WriteEndElement();
                    xml_doc.WriteEndElement();
                    xml_doc.WriteEndDocument();
                    xml_doc.Flush();
                    xml_doc.Close();

            

         }
      }

  • 相关阅读:
    Sizzle选择器引擎介绍
    from、includes、indexOf
    indexOf与includes的区别
    ES6 find 和 filter 的区别
    Spring MVC多个视图解析器及优先级
    Spring MVC多个视图解析器及优先级
    freemarker 中文乱码问题解决办法
    freemarker 中文乱码问题解决办法
    freemarker 中文乱码问题解决办法
    Spring集成MyBatis 通用Mapper以及 pagehelper分页插件
  • 原文地址:https://www.cnblogs.com/menglin2010/p/2295655.html
Copyright © 2011-2022 走看看