C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入
这次使用操作Xml较为常用的方法:使用XMlreader和Xmlwriter
1:读取xml文件的数学和元素
XmlReaderSettings settings = new XmlReaderSettings();
settings.IgnoreComments = true;
settings.IgnoreWhitespace = true;
XmlReader reader = XmlReader.Create("Customer2.xml", settings);
List<CustomerInfo> lists = new List<CustomerInfo>();
CustomerInfo cust = null;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
switch (reader.Name)
{
case "row":
cust = new CustomerInfo();
if (reader.HasAttributes)
{
cust.AppId = reader.GetAttribute("AppID");
cust.Version = reader.GetAttribute("Version");
}
break;
case "CustomerID":
cust.CustomerID = reader.ReadString();
break;
case "CompanyName":
cust.CompanyName = reader.ReadString();
break;
case "ContactName":
cust.ContactName = reader.ReadString();
break;
case "ContactTitle":
cust.ContactTitle = reader.ReadString();
break;
case "Address":
cust.Address = reader.ReadString();
break;
case "City":
cust.City = reader.ReadString();
break;
case "PostalCode":
cust.PostalCode = reader.ReadString();
break;
case "Country":
cust.Country = reader.ReadString();
break;
case "Phone":
cust.Phone = reader.ReadString();
break;
case "Fax":
cust.Fax = reader.ReadString();
lists.Add(cust);
break;
default:
break;
}
}
}
2.创建文档-属性和元素
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = false;
XmlWriter writer = XmlWriter.Create("CustomerNewElementArribute.xml", settings);
writer.WriteStartDocument();
writer.WriteStartElement("Table");
for (int i = 1; i < 10; i++)
{
writer.WriteStartElement("row");
writer.WriteAttributeString("Version", "2.0");
writer.WriteAttributeString("AppID", "111");
writer.WriteElementString("CustomerID", "cmz" + i.ToString());
writer.WriteElementString("CompanyName", "程沐喆" + i.ToString());
writer.WriteElementString("ContactName", "Maria Anders" + i.ToString());
writer.WriteElementString("ContactTitle", "Sales Representative" + i.ToString());
writer.WriteElementString("Address", "Obere Str. 57" + i.ToString());
writer.WriteElementString("City", "Berlin");
writer.WriteElementString("PostalCode", "12209");
writer.WriteElementString("Country", "Germany");
writer.WriteElementString("Phone", "030-0074321");
writer.WriteElementString("Fax", "030-0076545");
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
private void button7_Click(object sender, EventArgs e)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = false;
settings.Encoding = Encoding.UTF8;
StringBuilder builder = new StringBuilder();
XmlWriter writer = XmlWriter.Create(builder, settings);
writer.WriteStartDocument();
writer.WriteStartElement("Table");
for (int i = 1; i < 5; i++)
{
writer.WriteStartElement("row");
writer.WriteAttributeString("Version", "2.0");
writer.WriteAttributeString("AppID", "111");
writer.WriteElementString("CustomerID", "cmz" + i.ToString());
writer.WriteElementString("CompanyName", "程沐喆" + i.ToString());
writer.WriteElementString("ContactName", "Maria Anders" + i.ToString());
writer.WriteElementString("ContactTitle", "Sales Representative" + i.ToString());
writer.WriteElementString("Address", "Obere Str. 57" + i.ToString());
writer.WriteElementString("City", "Berlin");
writer.WriteElementString("PostalCode", "12209");
writer.WriteElementString("Country", "Germany");
writer.WriteElementString("Phone", "030-0074321");
writer.WriteElementString("Fax", "030-0076545");
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
另外在介绍自己学习的使用xmlwriter写入StringBuiler和Stream
创建xml写入StringBuiler:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = false;
settings.Encoding = Encoding.UTF8;
StringBuilder builder = new StringBuilder();
XmlWriter writer = XmlWriter.Create(builder, settings);
writer.WriteStartDocument();
writer.WriteStartElement("Table");
for (int i = 1; i < 5; i++)
{
writer.WriteStartElement("row");
writer.WriteAttributeString("Version", "2.0");
writer.WriteAttributeString("AppID", "111");
writer.WriteElementString("CustomerID", "ALFKI" + i.ToString());
writer.WriteElementString("CompanyName", "Alfreds Futterkiste" + i.ToString());
writer.WriteElementString("ContactName", "Maria Anders" + i.ToString());
writer.WriteElementString("ContactTitle", "Sales Representative" + i.ToString());
writer.WriteElementString("Address", "Obere Str. 57" + i.ToString());
writer.WriteElementString("City", "Berlin");
writer.WriteElementString("PostalCode", "12209");
writer.WriteElementString("Country", "Germany");
writer.WriteElementString("Phone", "030-0074321");
writer.WriteElementString("Fax", "030-0076545");
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
创建xml写入stream:
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = false;
settings.Encoding = new UTF8Encoding(false);
MemoryStream stream = new MemoryStream();
XmlWriter writer = XmlWriter.Create(stream, settings);
writer.WriteStartDocument();
writer.WriteStartElement("Table");
for (int i = 1; i < 5; i++)
{
writer.WriteStartElement("row");
writer.WriteAttributeString("Version", "2.0");
writer.WriteAttributeString("AppID", "111");
writer.WriteElementString("CustomerID", "ALFKI" + i.ToString());
writer.WriteElementString("CompanyName", "Alfreds Futterkiste" + i.ToString());
writer.WriteElementString("ContactName", "Maria Anders" + i.ToString());
writer.WriteElementString("ContactTitle", "Sales Representative" + i.ToString());
writer.WriteElementString("Address", "Obere Str. 57" + i.ToString());
writer.WriteElementString("City", "Berlin");
writer.WriteElementString("PostalCode", "12209");
writer.WriteElementString("Country", "Germany");
writer.WriteElementString("Phone", "030-0074321");
writer.WriteElementString("Fax", "030-0076545");
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入的更多相关文章
- Asp.Net 操作XML文件的增删改查 利用GridView
不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...
- Java操作XML文件 dom4j 篇
在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...
- PHP操作XML文件学习笔记
原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...
- Qt之QDomDocument操作xml文件-模拟ini文件存储
一.背景 不得不说Qt是一个很强大的类库,不管是做项目还是做产品,Qt自身封装的东西就已经非常全面了,我们今天的这篇文章就是模拟了Qt读写ini文件的一个操作,当然是由于一些外力原因,我们决定自己来完 ...
- JAVA中通过Jaxp操作XML文件基础
Java中有多种方式操作XML文件,目前讲一讲以SUN公司提供的DocumentBuilderFactory工厂类对象操作XML. 使用XML基本操作就是需要CRUD(增删改查),那么首先通过一个查询 ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- C#操作xml文件:使用XmlDocument 实现读取和写入
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...
- 利用XmlDocument操作XML文件
利用XmlDocument可以方便的操作XML文件. .操作XML文件基本方法 ()添加对System.Xml的引用,并使用using语句添加引用: ()假设要读取的XML文件如下: <?xml ...
- C#基础知识---Linq操作XML文件
概述 Linq也就是Language Integrated Query的缩写,即语言集成查询,是微软在.Net 3.5中提出的一项新技术. Linq主要包含4个组件---Linq to Objects ...
随机推荐
- 基于.NET的开源搜索引擎-DotLucene(2)
NLucene是将 Lucene 从 Java 移植到 .NET 的一个 SourceForge 项目,它从 Lucene 1.2 版本转化而来. Lucene.Net因为 NLucene 项目到20 ...
- gulp 搭建个人工作流:文件注入、热启动、跨域
个人比价推崇前后端分离的开发方式,大家伙各司其职,只需通过 API 进行交流,不仅避免了沟通上的成本,更提升了开发效率.而在前端开发工作中,许多需求和问题是相似的,所以我们的开发模式往往是雷同的,是否 ...
- 注解中用于@target的方法annotation/--ElementType.METHOD,ElementType.TYPE对应方法,类接
@Target: @Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages.types(类.接口.枚举.Annotation类型).类型成员(方法.构造 ...
- Linux下配置环境变量的几个方法实例
场景:一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录 ...
- Leetcode 98 验证二叉搜索树 Python实现
给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右子树自身必须也是二叉搜索 ...
- 主机:Think Pad(6475EC7) 64位的Win7上面装CentOS,说VT模式没有被启动,但BIOS里面已经启用了VT-X
我的主机是ThindPad,型号是6475EC7,就是比较老的型号. 启动vmware出现 二进制转换与此平台长模式不兼容.......: 首先:进入BOIS查看VT是否已经开启(不同型号电脑VT选项 ...
- ubuntu14 安装tftp服务器
安装 sudo apt-get install tftp-hpa tftpd-hpa 配置 sudo gedit /etc/default/tftpd-hpa 打开tftpd-hpa修改里面的配置: ...
- Access to the path ‘’ is denied
2019/4/29 问题:利用VS实现数据导出,出现Error:Access to the path 'F:\HPYMTotalCode\Web\dd\xmqjd.xls' is denied. 原因 ...
- Ubuntu+Mac使用飞鸽传书iptux进行互通
iptux不能直接与Mac版的IPMessage进行文件传输,但是可以和Windows的IPMessage进行互通.如果要实现Ubuntu和Mac下互通,就必须编译同一套代码,因为使用C++写的,所以 ...
- 谈谈数据库的ACID
一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. // 创建 ...