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();
}
}
C#温故而知新学习系列之XML编程—Xml写入器XmlWriter类(三)相关推荐
- C#温故而知新学习系列之面向对象编程—构造函数(七)
构造函数 构造函数又叫构造方法,其实就是对类进行初始化,构造函数与类同名,无返回值,也不需要void,在new时候调用 所有的类都有构造函数,如果你不写构造函数的话,系统默认生成空的构造函数,若你有自 ...
- C#温故而知新学习系列之面向对象编程—readonly关键字(十七)
readonly关键字 表示只读的意思,与const不同,readonly关键字只能用于字段,不能用于局部变量,也就是说要使用readonly修饰一个字段或者变量的时候,必须将它声明在类中或者全局变量 ...
- ASP.NET温故而知新学习系列之ASP.NET多线程编程—.NET下的多线程编程应用程序域(七)...
阅读目录 一:应用程序域概述 二:应用程序域和线程的关系 三:线程跨越多个应用程序域实例 四:运行效果 一:应用程序域 . 在.NET中有个特点,在.NET中有个CLR,在操作系统和我们编程环境之间有 ...
- ASP.NET温故而知新学习系列之ASP.NET多线程编程—异步编程(九)
阅读目录 一:同步处理 二:异步处理 三:异步委托 四:通过委托同步调用方法 五:通过委托异步调用方法 一:同步处理 一个同步操作会阻塞整个当前的进程,直到这个操作完成才能执行下一段代码 二:异步处理 ...
- C#温故而知新学习系列之.NET框架高级特性—概述.NET框架中的反射(一)
阅读目录 一:什么是元数据? 二:概述.NET框架中的反射 一:什么是元数据? 元数据,就是描述数据的数据,它存储在PE文件中,PE文件由IL Code和元数据组成,元数据为.NET提供了丰富的自我描 ...
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程
陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程 Xml是extensiable markup language的简称,包括文档声明.元素.属性.注释.CDATA区.特殊字符 ...
- java之xml编程
2019独角兽企业重金招聘Python工程师标准>>> java之xml编程 XML是一个文本信息格式的 XML用于共享数据和传输数据 XML可以描述复杂的树状结构 XML有 ...
- 【转】解析.Net框架下的XML编程技术
[引自突破思维的禁忌的博客]一.前言 XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web服务的基石,所以掌握.Net框架下的XML技术自然显得非常重要了.本文将指导大家如何运用C# ...
- 深度学习系列:深度学习在腾讯的平台化和应用实践
深度学习系列:深度学习在腾讯的平台化和应用实践(一) 莫扎特 2015-01-04 6:05:13 大数据技术 评论(0) 深度学习是近年机器学习领域的重大突破,有着广泛的应用前景.随着Google公 ...
最新文章
- jQuery学习(一)
- [转载]在Eclipse CDT中编译含有多个main函数的项目
- 如何在Android上管理startActivityForResult?
- VSS、RSS、PSS、USS
- 央视曝光:刷单实为非法商业模式 步步设置全是套路
- 员工工号怎么编码_华为员工感慨:工号就留在这了,感谢公司给我自己写墓志铭的机会...
- 17.QT-事件处理分析、事件过滤器、拖放事件
- Navicat Premium mysql
- 电磁波与电磁信号、生活中的电磁波
- 优雅地修改多模块maven项目中的版本号
- 关于cad2010的激活
- 桌面太单调?一起用Python做个自定义动态壁纸,竟然还可以放视频!
- Linux下搭建打印机共享服务器(支持苹果AirPrint)
- docker修改服务器ip地址,如何修改docker的ip地址
- 北斗卫星导航系统简介
- 服务器端查看图片库 eog display Xforwarding
- SpaceSniffer(磁盘大小扫描分析) 彻底解决C盘爆满问题 清理C盘必备软件
- 朱军,感到无助与迷茫,关于这生活
- 2022-2028年中国电子商务行业市场深度分析及投资前景展望报告
- 2021年河南高考--各高校在河南录取分数线预测(本科一批——文科)