C# XML基本操作

C# XML基本操作介绍XML基础概念:扩展标记语言(ExtensibleMarkupLanguage,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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154282.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js排序——sort()排序用法

    js排序——sort()排序用法sort()方法用于对数组的元素进行排序,并返回数组。默认排序顺序是根据字符串Unicode码点。语法:array.sort(fun);参数fun可选。规定排序顺序。必须是函数。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。如果想按照其他规则进行排序,就需要提供比较函数,该函数要比较两个值,然后返回…

    2022年10月20日
    3
  • SPSS卡方检验结果解读详解

    SPSS卡方检验结果解读详解卡方检验(Chi-SquareTest)是由Pearson提出的一种统计方法,在一定的置信水平和自由度下,通过比较卡方统计量和卡方分布函数概率值,判断实际概率与期望概率是否吻合,通过比较理论概率和实际概率的吻合程度,可检验两个分类变量的相关性。用户可利用SPSS软件方便的完成卡方检验,在SPSS软件中,默认H0成立,即观察频数和实际频数无差别,即两组变量相互不产生影响,两组变量不相关,如果检验P值很高,则假设检验通过;如果检验P值很低,则检验不通过,观察频数和实际频数有差别,两组变量相关。SPSS数据检验

    2022年5月13日
    93
  • waf(web安全防火墙)主要功能点

    waf(web安全防火墙)主要功能点注入攻击SQL注入防护:阻止恶意SQL代码在网站服务器上执行。命令注入防护:阻止攻击者利用网站漏洞直接执行系统命令。XPATH注入防护:阻止攻击者构造恶意输入数据,形成XML文件实施注入。LDAP注入防护:阻止攻击者将网站输入的参数引入LDAP查询实施注入。SSI注入防护:阻止攻击者将SSI命令在服务端执行,主要发生在.shtml,.shtm,.stm文件。缓冲区溢出防护:阻止请求中填入超过缓冲区容量的数据,防止恶意代码被执行。HPP攻击防护:阻止攻击者利用HPP漏洞来发起注入…

    2022年5月5日
    154
  • python 报错——Python TypeError: ‘module’ object is not callable 原因分析

    python 报错——Python TypeError: ‘module’ object is not callable 原因分析

    2021年10月22日
    89
  • 强制升级openssl导致无法使用SSH(生成ssh公钥)

    最近由于工作需求要搭建freeswitch,整个过程比较纠结,遂总结于此留作备忘。起源由于我的需求是将freeswitch跑起来,所以先按照freeswitchwiki上的介绍编译freeswitch,但configure过程便遇到问题:configure:error:OpenSSL>=1.0.1eandassociateddevelopementheadersrequi…

    2022年4月15日
    73
  • SilverlightQQ体验报告…

    SilverlightQQ体验报告…显示风格…太华丽了..风格2MacOS的滑动效果..太暴力了 另外一种显示风格.. 嘛是起飞??? 好友搜索 

    2022年7月17日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号