C#中XML文件内容增删改查的方法

C#中XML文件内容增删改查的方法

本篇内容介绍了“C#中XML文件内容增删改查的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    什么是XML?

    • XML是一种可扩展标记语言(EXtensible Markup Language)。

      C#中XML文件内容增删改查的方法

    • XML是一种很像HTML的标记语言。

    • XML的设计宗旨是传输数据,而不是显示数据。

    • XML标签没有被预定义。您需要自行定义标签。

    • XML被设计为具有自我描述性。

    • XML是 W3C 的推荐标准。

    XML的优缺点

    XML的优点

    • 语法严谨,格式统一,符合标准。

    • 容易与其他系统进行远程交互,数据共享比较方便。

    XML的缺点

    • 扩展性、弹性、易读性均不佳。

    • XML文件庞大,文件格式复杂,传输占带宽。

    • 服务器端和客户端解析XML花费较多的资源和时间。

    XML简单示例

    在线xml验证工具

    <?xmlversion="1.0"encoding="utf-8"?><books><book><author>追逐时光者</author><title>XML学习教程</title><publisher>时光出版社</publisher></book></books>

    XML中5个预定义的实体引用

    转义字符符号名称
    &amp;&和号
    &lt;<小于
    &gt;>大于
    &apos;'省略号
    &quot;"引号

    严格地讲,在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的。这时,Xml有两种解决方案来处理这种问题。

    CDATA

    转义字符

    C#把特殊符号转换为转义字符

    ///<summary>///特殊符号转换为转义字符///</summary>///<paramname="xmlStr"></param>///<returns></returns>publicstringXmlSpecialSymbolConvert(stringxmlStr){returnxmlStr.Replace("&","&amp;").Replace("<","&lt;").Replace(">","&gt;").Replace("\'","&apos;").Replace("\"","&quot;");}

    C#创建简单的XML文件  

    ///<summary>///创建Xml文件///</summary>publicvoidCreateXmlFile(){XmlDocumentxmlDoc=newXmlDocument();//创建类型声明节点XmlNodenode=xmlDoc.CreateXmlDeclaration("1.0","utf-8","");xmlDoc.AppendChild(node);//创建Xml根节点XmlNoderoot=xmlDoc.CreateElement("books");xmlDoc.AppendChild(root);XmlNoderoot1=xmlDoc.CreateElement("book");root.AppendChild(root1);//创建子节点CreateNode(xmlDoc,root1,"author","追逐时光者");CreateNode(xmlDoc,root1,"title","XML学习教程");CreateNode(xmlDoc,root1,"publisher","时光出版社");//将文件保存到指定位置xmlDoc.Save("D://xmlSampleCreateFile.xml");}///<summary>///创建节点///</summary>///<paramname="xmlDoc">xml文档</param>///<paramname="parentNode">Xml父节点</param>///<paramname="name">节点名</param>///<paramname="value">节点值</param>///publicvoidCreateNode(XmlDocumentxmlDoc,XmlNodeparentNode,stringname,stringvalue){//创建对应Xml节点元素XmlNodenode=xmlDoc.CreateNode(XmlNodeType.Element,name,null);node.InnerText=value;parentNode.AppendChild(node);}

    创建生成的Xml文件

    <?xmlversion="1.0"encoding="utf-8"?><books><book><author>追逐时光者</author><title>XML学习教程</title><publisher>时光出版社</publisher></book></books>

    C#在XML文件添加节点

    这次我们是在上一次新建的XML文件中做操作,在book二级节点下添加一个新的节点名为publishdate(发布时间),该节点的value为2022-03-26。

    privatestaticvoidAppendNode(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNoderoot=xmlDoc.SelectSingleNode("books/book");//选择要添加子节点的book节点//创建一个新的Xml节点元素XmlNodenode=xmlDoc.CreateNode(XmlNodeType.Element,"publishdate",null);node.InnerText="2022-03-26";root.AppendChild(node);//将创建的item子节点添加到items节点的尾部xmlDoc.Save("D://AppendNodeFile.xml");//保存修改的Xml文件内容}

    添加节点成功后的XML文件内容

    <?xmlversion="1.0"encoding="utf-8"?><books><book><author>追逐时光者</author><title>XML学习教程</title><publisher>时光出版社</publisher><publishdate>2022-03-26</publishdate></book></books>

    C#修改XML文件节点的数据

    这次我们是在第一次新建的XML文件中做操作,把在book二级节点下的author的内容改成:大姚同学

    privatestaticvoidUpdateXml(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNodexns=xmlDoc.SelectSingleNode("books/book");//查找要修改的节点XmlNodeListxmlNodeList=xns.ChildNodes;//取出book节点下所有的子节点foreach(XmlNodexmlNodeinxmlNodeList){XmlElementxmlElement=(XmlElement)xmlNode;//将节点转换一下类型if(xmlElement.Name=="author")//判断该子节点是否是要查找的节点{xmlElement.InnerText="大姚同学";//设置新值break;}}xmlDoc.Save("D://UpdateXml.xml");//保存修改的Xml文件内容}

    修改后的XML文件内容

    <?xmlversion="1.0"encoding="utf-8"?><books><book><author>大姚同学</author><title>XML学习教程</title><publisher>时光出版社</publisher></book></books>

    C#删除XML文件中的指定节点

    这次我们是在第一次新建的XML文件中做操作,删除author节点。

    privatestaticvoidDeleteXmlNode(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNodexns=xmlDoc.SelectSingleNode("books/book");//查找要删除的根节点#region删除author节点vardelNode=xmlDoc.SelectSingleNode("books/book/"+"author");xns.RemoveChild(delNode);#endregionxmlDoc.Save("D://DeleteXmlNode.xml");//保存操作后的Xml文件内容}

    C#清空指定XML节点数据

    这次我们是在第一次新建的XML文件中做操作,清空author节点下的数据。

    privatestaticvoidClearDataXmlNode(){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load("D://xmlSampleCreateFile.xml");//加载Xml文件XmlNodexns=xmlDoc.SelectSingleNode("books/book");//查找要删除的根节点#region清空author节点下的数据XmlNodeListxmlNodeList=xns.ChildNodes;//取出book节点下所有的子节点foreach(XmlNodexmlNodeinxmlNodeList){XmlElementxmlElement=(XmlElement)xmlNode;//将节点转换一下类型if(xmlElement.Name=="author")//判断该子节点是否是要查找的节点{//清空author节点下的数据xmlElement.RemoveAll();//删除该节点的全部内容}}#endregionxmlDoc.Save("D://ClearDataXmlNode.xml");//保存操作后的Xml文件内容}

    “C#中XML文件内容增删改查的方法”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!

    发布于 2022-04-03 22:38:53
    收藏
    分享
    海报
    0 条评论
    31
    上一篇:MySQL和Redis的数据一致性问题怎么解决 下一篇:Go语言time包数字与时间相乘的问题怎么解决
    目录

      0 条评论

      本站已关闭游客评论,请登录或者注册后再评论吧~

      忘记密码?

      图形验证码