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:.xml");

插入元素值

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

修改元素值

            var xml = new System.Xml.XmlDocument();
            xml.Load(@"E:.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:.xml");//修改完成后保存
                    }
                }
            }
            else
            {
                MessageBox.Show("no element");
            }

删除元素值

var xml = new System.Xml.XmlDocument();
            xml.Load(@"E:.xml");
            XmlNode nodeparams = xml.SelectSingleNode("User");//找根节点
            XmlNode Name = nodeparams.SelectSingleNode("Name");
            nodeparams.RemoveChild(Name); //New Node
            xml.Save(@"E:.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:.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:.xml");
            XElement xElement = xdoc.Element("root");
            xElement.Add(new XElement("Test"));
            xdoc.Save(@"E:.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:.xml");
            XElement xElement = xdoc.Element("root");
            XElement Test =xElement.Element("Test");
            Test.Remove();
            //xElement.Remove();
            xdoc.Save(@"E:.xml");

查询元素值

            XDocument xdoc = XDocument.Load(@"E:.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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • k8s 资源管理_pod容器间调用命令

    k8s 资源管理_pod容器间调用命令k8s管理器介绍yaml资源管理器介绍管理器介绍在Kubernetes中,所有的内容都抽象为资源,用户需要通过操作资源来管理Kubernetes。Kubernetes的本质就是一个集群系统,用户可以在集群中部署各种服务。所谓的部署服务,其实就是在Kubernetes集群中运行一个个的容器,并将指定的程序跑在容器中。Kubernetes的最小管理单元是Pod而不是容器,所以只能将容器放在Pod中,而Kubernetes一般也不会直接管理Pod,而是通过Pod控制器来管理Pod的。Pod提供服务之后

  • java对象转JSONObject、JSONObject转java对象及String转JSONObject

    java对象转JSONObject、JSONObject转java对象及String转JSONObjectJSONObjectjo=(JSONObject)JSONObject.toJSON(javaBean);Studentstu=(Student)JSONObject.toBean(jo,Student.class);

  • PetaLinux学习笔记 2

    PetaLinux学习笔记 2现在遇到这样一个问题,没有USB,甚至于USB都没有电压输出,检查电路,USB供电是由一个TPS2051BDBV来控制的,这个芯片又是USB3320C来控制的,说明这个芯片没有工作。官方的例子是可以正常工作的。我仔细查看教程,找到了被我忽略掉的一个内核文件:linux-xlnx-xilinx-v2017.4.tar.gz。这个文件既然由官方提供,那一定是有改动在里面的。黑金在打包这个目录的时候,…

  • [029] 微信公众帐号开发教程第5篇-各种消息的接收与响应[通俗易懂]

    [029] 微信公众帐号开发教程第5篇-各种消息的接收与响应[通俗易懂]前一篇文章里我们已经把微信公众平台接口中消息及相关操作都进行了封装,本章节将主要介绍如何接收微信服务器发送的消息并做出响应。明确在哪接收消息从微信公众平台接口消息指南中可以了解到,当用户向公众帐号发消息时,微信服务器会将消息通过POST方式提交给我们在接口配置信息中填写的URL,而我们就需要在URL所指向的请求处理类CoreServlet的doPost方法中接收消息、处理消息和响应

  • 一步一步写算法(洗牌算法)[建议收藏]

    一步一步写算法(洗牌算法)

    2021年12月17日
  • 三菱数据移位指令_三菱PLC移位指令「建议收藏」

    三菱数据移位指令_三菱PLC移位指令「建议收藏」(2011-05-2014:09:54)转载▼标签:杂谈分类:技术三菱PLC移位指令分左移和右移,分别是SFTL和SFTR。而针对位的移位则是SFTLP和SFTRP,前几天给学生讲这个指令时专门做了个跑马灯的例子,用的就是这个指令。下面简单讲解一下SFTLP。指令格式为SFTLPM20M0K8K1SFTLP——对位进行左移;M20——移进来的是“1”还是“0”得看M20的状态,M…

发表回复

您的电子邮箱地址不会被公开。

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