C/C++知识点之C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入
小标 2019-06-10 来源 : 阅读 1739 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

C/C++知识点之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/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程