温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#操作XMl文件(2):使用XmlReader和XmlWriter实现读取和写入

发布时间:2020-04-04 21:49:33 来源:网络 阅读:2579 作者:程沐喆 栏目:编程语言

这次使用操作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();
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI