• C# XML基本操作


    介绍

    XML基础概念:

    扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。

    常用传输格式一般用XML或者JSON。两者主要区别在于XML:扩展性好,资源开销大。JSON:资源开销小。

    XML使用(原生接口)

    XML创建与节点设置

                var xml = new System.Xml.XmlDocument();
                XmlDeclaration declaration = xml.CreateXmlDeclaration("1.0", "UTF-8", "");//xml文档的声明部分           
                xml.AppendChild(declaration);//添加至XmlDocument对象中
                XmlElement User = xml.CreateElement("User");//创建根节点User
                XmlNode Student = xml.CreateElement("Student");//创建子节点ID
                XmlElement ID = xml.CreateElement("ID");//创建子节点元素
                ID.InnerText = "123";
                User.AppendChild(Student);//子节点
                Student.AppendChild(ID);//子节点元素
                xml.AppendChild(User);//根目录User,有且只有一个
                xml.Save(@"E:1.xml");
    

    插入元素值

                var xml = new System.Xml.XmlDocument();
                xml.Load(@"E:1.xml");
                XmlNode nodeparams = xml.SelectSingleNode("User");//找根节点
                XmlElement Name = xml.CreateElement("Name");
                nodeparams.AppendChild(Name); //New Node
                xml.Save(@"E:1.xml");//修改完成后保存
    

    修改元素值

                var xml = new System.Xml.XmlDocument();
                xml.Load(@"E:1.xml");
                XmlNode nodeparams = xml.SelectSingleNode("User");//找根节点
                if (nodeparams != null)
                {
                    XmlNode nodeparams2 = nodeparams.SelectSingleNode("Student");//子节点
                    if(nodeparams2!=null)
                    {
                        XmlNodeList nodelist = nodeparams2.ChildNodes;
                        if (nodelist != null)
                        {
                            XmlNode ID = nodelist[0];
                            ID.InnerText = "2221";
                            xml.Save(@"E:1.xml");//修改完成后保存
                        }
                    }
                }
                else
                {
                    MessageBox.Show("no element");
                }
    

    删除元素值

    var xml = new System.Xml.XmlDocument();
                xml.Load(@"E:1.xml");
                XmlNode nodeparams = xml.SelectSingleNode("User");//找根节点
                XmlNode Name = nodeparams.SelectSingleNode("Name");
                nodeparams.RemoveChild(Name); //New Node
                xml.Save(@"E:1.xml");//修改完成后保存
    

    Linq to XML

    创建并保存

                XDocument xdoc = new XDocument(
                new XDeclaration("1.0", "utf-8", "yes"),
                new XElement("root",new XElement("Student", new XElement("ID", "123")),new XElement("item1", "2")));
                xdoc.Save(@"E:1.xml");
    

    创建后结果

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <root>
      <Student>
        <ID>123</ID>
      </Student>
      <item1>2</item1>
    </root>
    

    查找并添加结点

    XDocument xdoc = XDocument.Load(@"E:1.xml");
                XElement xElement = xdoc.Element("root");
                xElement.Add(new XElement("Test"));
                xdoc.Save(@"E:1.xml");
    

    输出结果

    <?xml version="1.0" encoding="utf-8" standalone="yes"?>
    <root>
      <Student>
        <ID>123</ID>
      </Student>
      <item1>2</item1>
      <Test />
    </root>
    

    删除结点

                XDocument xdoc = XDocument.Load(@"E:1.xml");
                XElement xElement = xdoc.Element("root");
                XElement Test =xElement.Element("Test");
                Test.Remove();
                //xElement.Remove();
                xdoc.Save(@"E:1.xml");
    

    查询元素值

                XDocument xdoc = XDocument.Load(@"E:1.xml");
                XElement xElement = xdoc.Element("root");
                XElement item1 = xElement.Element("item1");//查找item1结点的值
                string a = item1.Value.ToString();
                MessageBox.Show(a.ToString());
    

    参考博客

    XMLNode:https://www.cnblogs.com/net-sky/p/10412082.html

    Linq to XMl:https://blog.csdn.net/songyi160/article/details/50824274

  • 相关阅读:
    在from表单中提交同name数据时,怎么获取所有值
    面试题
    String的创建模式
    spring的事务支持
    微信小程序+java实现附件上传以及下载打开详细过程记录
    spring编写AOP代理上的一点小坑
    java静态内部类的作用
    Python学习 :json、pickle&shelve 模块
    Python学习 :正则表达式
    Python学习 :常用模块(四)----- 配置文档
  • 原文地址:https://www.cnblogs.com/aqyl/p/12421606.html
Copyright © 2020-2023  润新知