这次使用操作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实现读取和写入的更多相关文章

  1. Asp.Net 操作XML文件的增删改查 利用GridView

    不废话,直接上如何利用Asp.NET操作XML文件,并对其属性进行修改,刚开始的时候,是打算使用JS来控制生成XML文件的,但是最后却是无法创建文件,读取文件则没有使用了 index.aspx 文件 ...

  2. Java操作XML文件 dom4j 篇

    在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...

  3. PHP操作XML文件学习笔记

    原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作 ...

  4. Qt之QDomDocument操作xml文件-模拟ini文件存储

    一.背景 不得不说Qt是一个很强大的类库,不管是做项目还是做产品,Qt自身封装的东西就已经非常全面了,我们今天的这篇文章就是模拟了Qt读写ini文件的一个操作,当然是由于一些外力原因,我们决定自己来完 ...

  5. JAVA中通过Jaxp操作XML文件基础

    Java中有多种方式操作XML文件,目前讲一讲以SUN公司提供的DocumentBuilderFactory工厂类对象操作XML. 使用XML基本操作就是需要CRUD(增删改查),那么首先通过一个查询 ...

  6. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  7. C#操作xml文件:使用XmlDocument 实现读取和写入

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内 ...

  8. 利用XmlDocument操作XML文件

    利用XmlDocument可以方便的操作XML文件. .操作XML文件基本方法 ()添加对System.Xml的引用,并使用using语句添加引用: ()假设要读取的XML文件如下: <?xml ...

  9. C#基础知识---Linq操作XML文件

    概述 Linq也就是Language Integrated Query的缩写,即语言集成查询,是微软在.Net 3.5中提出的一项新技术. Linq主要包含4个组件---Linq to Objects ...

随机推荐

  1. php socket 简单理解

    以下内容转自:https://www.cnblogs.com/loveyoume/p/6076101.html 和 https://www.cnblogs.com/WuNaiHuaLuo/p/6107 ...

  2. 渗透日常之 花式实战助你理解CSRF

    本文作者:i春秋签约作家——onls辜釉 最近比较忙,很久没发文章了,Onls本就只是一个安全爱好者,工作也不是安全相关.以往的文章也更像是利用简单漏洞的“即兴把玩”,更多的是偏向趣味性,给大家增加点 ...

  3. mysql分表分库选型

    三个方向: 一.应用中自己实现,可直连数据库,自己实现因目前使用的Mybatis框架可以使用两种做法: 1.在SQL中直接分表逻辑,我查了一下代码中的sql,发现join的千姿百态,不大动这些sql这 ...

  4. 基于.NET的开源搜索引擎-DotLucene(2)

    NLucene是将 Lucene 从 Java 移植到 .NET 的一个 SourceForge 项目,它从 Lucene 1.2 版本转化而来. Lucene.Net因为 NLucene 项目到20 ...

  5. (二)Python 装饰器

    1. 函数 在 Python 中,使用关键字 def 和一个函数名以及一个可选的参数列表来定义函数.函数使用 return 关键字来返回值.定义和使用一个最简单的函数例子: >>> ...

  6. C#-一维数组——★★冒泡排序★★

    ////★★★★★冒泡排序 ; i < a - ; i++) { ; j < a; j++) { if (age[i] < age[j]) { int zhong = age[i]; ...

  7. 对HTTP和TCP的理解

    1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上. ...

  8. word前页与后页页码断开

    方法一:以Word2013为例:1. 光标移动到目录页的最后一行,从“页面布局”选项卡“分隔符”中选择“下一页”类型的“分节符”,删除多余的行.分页符等(图1): 2. 双击正文任意一页的页眉/页脚区 ...

  9. 响应式Web设计-一种优雅的掌上展现

    入门 flat - style (too many ad.) writeshell

  10. Add:四则运算

    输入为四则运算表达式,仅由整数.+.-.*./ .(.) 组成,没有空格,要求求其值.假设运算符结果都是整数 ."/"结果也是整数 表达式  由  项    或    项      ...