已知有一个XML文件(bookshop.xml)如下:

  1. <?xml version="1.0" encoding="gb2312" ?>
  2. <bookshop>
  3. <book genre="fantasy" ISBN="2-2312-2">
  4. <title>Oberon Legacy</title>
  5. <author>Eva</author>
  6. <price>56.5</price>
  7. </book>
  8. </bookshop>

下面看看是怎样读写xml文件的:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Xml;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9. class Program
  10. {
  11. XmlDocument xmlDoc;
  12. ///<summary>
  13. /// 插入节点
  14. ///</summary>
  15. publicvoid InsertNode()
  16. {
  17. xmlDoc =new XmlDocument();
  18. xmlDoc.Load("bookshop.xml"); //加载xml文件
  19.  
  20. /*从指定的字符创加载xml文件 例如:
  21. xmlDoc.LoadXml("(<Book bookID='B001'><BookName>jeff</BookName><price>45.6</price></Book>)");
  22. */
  23. XmlNode root = xmlDoc.SelectSingleNode("bookshop");//查找﹤bookstore﹥
  24. XmlElement xe1 = xmlDoc.CreateElement("book");//创建一个﹤book﹥节点
  25. xe1.SetAttribute("genre", "Sky_Kwolf");//设置该节点genre属性
  26. xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性
  27.  
  28. XmlElement xesub1 = xmlDoc.CreateElement("title");
  29. xesub1.InnerText ="CSS禅意花园";//设置节点的文本值
  30. xe1.AppendChild(xesub1);//添加到﹤book﹥节点中
  31. XmlElement xesub2 = xmlDoc.CreateElement("author");
  32. xesub2.InnerText ="Jeff";
  33. xe1.AppendChild(xesub2);
  34. XmlElement xesub3 = xmlDoc.CreateElement("price");
  35. xesub3.InnerText ="58.3";
  36. xe1.AppendChild(xesub3);
  37.  
  38. root.AppendChild(xe1);//添加到﹤bookshop﹥节点中
  39. xmlDoc.Save("bookshop.xml"); //保存其更改
  40. }
  41. ///<summary>
  42. /// 修改节点
  43. ///</summary>
  44. publicvoid UpdateNode()
  45. {
  46. xmlDoc =new XmlDocument();
  47. xmlDoc.Load("bookshop.xml"); //加载xml文件
  48. //获取bookshop节点的所有子节点
  49. XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookshop").ChildNodes;
  50.  
  51. //遍历所有子节点
  52. foreach (XmlNode xn in nodeList)
  53.  
  54. {
  55. XmlElement xe = (XmlElement)xn; //将子节点类型转换为XmlElement类型
  56.  
  57. if (xe.GetAttribute("genre") =="Sky_Kwolf")//如果genre属性值为“Sky_Kwolf”
  58. {
  59. xe.SetAttribute("genre", "update Sky_Kwolf"); //则修改该属性为“update Sky_Kwolf”
  60. XmlNodeList nls = xe.ChildNodes;//继续获取xe子节点的所有子节点
  61.  
  62. foreach (XmlNode xn1 in nls)//遍历
  63. {
  64. XmlElement xe2 = (XmlElement)xn1; //转换类型
  65. if (xe2.Name =="author")//如果找到
  66. {
  67. xe2.InnerText ="jason";//则修改
  68. break;//找到退出
  69. }
  70. }
  71. break;
  72. }
  73. }
  74.  
  75. xmlDoc.Save("bookshop.xml");//保存。
  76. }
  77. //显示xml数据
  78. publicvoid ShowXml()
  79. {
  80. xmlDoc =new XmlDocument();
  81. xmlDoc.Load("bookshop.xml"); //加载xml文件
  82. XmlNode xn = xmlDoc.SelectSingleNode("bookshop");
  83.  
  84. XmlNodeList xnl = xn.ChildNodes;
  85.  
  86. foreach (XmlNode xnf in xnl)
  87. {
  88. XmlElement xe = (XmlElement)xnf;
  89. Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
  90. Console.WriteLine(xe.GetAttribute("ISBN"));
  91.  
  92. XmlNodeList xnf1 = xe.ChildNodes;
  93. foreach (XmlNode xn2 in xnf1)
  94. {
  95. Console.WriteLine(xn2.InnerText);//显示子节点点文本
  96. }
  97. }
  98. }
  99. ///<summary>
  100. /// 删除节点
  101. ///</summary>
  102. publicvoid DeleteNode()
  103. {
  104. xmlDoc =new XmlDocument();
  105. xmlDoc.Load("bookshop.xml"); //加载xml文件
  106. XmlNodeList xnl = xmlDoc.SelectSingleNode("bookshop").ChildNodes;
  107.  
  108. foreach (XmlNode xn in xnl)
  109. {
  110. XmlElement xe = (XmlElement)xn;
  111.  
  112. if (xe.GetAttribute("genre") =="fantasy")
  113. {
  114. xe.RemoveAttribute("genre");//删除genre属性
  115. }
  116. elseif (xe.GetAttribute("genre") =="update Sky_Kwolf")
  117. {
  118. xe.RemoveAll();//删除该节点的全部内容
  119. }
  120. }
  121. xmlDoc.Save("bookshop.xml");
  122. }
  123. staticvoid Main(string[] args)
  124. {
  125.  
  126. Program p =new Program();
  127. p.ShowXml();
  128. Console.ReadLine();
  129. }
  130. }
  131. }

代码

  1. XmlDocument XmlDoc = null;
  2. XmlDoc = new XmlDocument();
  3.  
  4. XmlDeclaration dec = XmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
  5. XmlDoc.AppendChild(dec);
  6. XmlElement root = XmlDoc.CreateElement("message");
  7. XmlDoc.AppendChild(root);
  8.  
  9. XmlElement eName;
  10. XmlNode M_Root = XmlDoc.SelectSingleNode("message");
  11. XmlNode M_Root1;
  12.  
  13. XmlElement head = XmlDoc.CreateElement("header");
  14. head.SetAttribute("checksum", "2e11193e4d27dc9b0600de7b2586b1e4");
  15. root.AppendChild(head);
  16.  
  17. eName = XmlDoc.CreateElement("bizid");//创建节点
  18. eName.InnerXml = "";
  19. head.AppendChild(eName);
  20.  
  21. eName = XmlDoc.CreateElement("body");//创建节点
  22. eName.InnerXml = "";
  23. head.AppendChild(eName);
  24.  
  25. XmlElement cont = XmlDoc.CreateElement("content");
  26. root.AppendChild(cont);
  27. M_Root1 = XmlDoc.SelectSingleNode("message").LastChild;
  28.  
  29. XmlElement table = XmlDoc.CreateElement("Table");
  30. table.SetAttribute("count", "");
  31. cont.AppendChild(table);
  32.  
  33. XmlElement row = XmlDoc.CreateElement("row");
  34. row.SetAttribute("id", "");
  35. table.AppendChild(row);
  36.  
  37. eName = XmlDoc.CreateElement("column");//创建节点
  38. eName.SetAttribute("type", "String");
  39. eName.SetAttribute("id", "BT");
  40. eName.SetAttribute("desc", "题名");
  41. eName.InnerXml = "<![CDATA[" + ds.Tables[].Rows[i]["BT"].ToString() + "]]>";
  42. row.AppendChild(eName);
  43.  
  44. string file = FilePath + ds.Tables[].Rows[i]["ID"].ToString() + "REST.XML";
  45. XmlDoc.Save(file); //保存XML
  46.  
  47. return XmlDoc.InnerXml;//显示XML

C#读写xml文件的常用方法的更多相关文章

  1. PHP读写XML文件的四种方法

    PHP对XML文件进行读写操作的方法一共有四种,分别是:字符串方式直接读写.DOMDocument读写. XMLWrite写和XMLReader读.SimpleXML读写,本文将依次对这四种方法进行介 ...

  2. Java 读写XML文件 API--org.dom4j

    om4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,同时它也是一个开放源代码的软件 ...

  3. Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件

    Fixflow引擎解析(四)(模型) - 通过EMF扩展BPMN2.0元素 Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件 Fixflow引擎解析(二)(模型) - BPMN ...

  4. cocos2d-x 读写 xml 文件

    cocos2d-x 读写 xml 文件 A product of cheungmine使用cocos2d-x开发2d游戏确实方便,但是对于一般的小游戏,经常需要的工作是UI布局设计和调整,代码改来改去 ...

  5. java通过dom读写xml文件

    java通过dom读写xml文件 要读的xml文件 <?xml version="1.0" encoding="GB2312"?><学生花名册 ...

  6. C# 读写XML文件的方法

    C# 读写XML文件的方法 一.写XML文件 XmlDocument xmlDocument = new XmlDocument();xmlDocument.AppendChild(xmlDocume ...

  7. VC 使用msxml6.dll动态链接库中的函数读写XML文件

    VC 使用msxml6.dll动态链接库中的函数读写XML文件 目录 1 引言 2 .dll使用方法 3 常用函数总结 4 实例应用 5 运行效果预览 6 补充说明 7 不足之处 8 更新   引言: ...

  8. 【VS开发】【计算机视觉】OpenCV读写xml文件《C++版本》

    OpenCV FileStorage类读写XML/YML文件 在OpenCV程序中,需要保存中间结果的时候常常会使用.xml / .yml文件,opencv2.0之前都是使用C风格的代码,当时读写XM ...

  9. Spring读写xml文件

    一.如果只是读取 新建一个 xml 文件,需要满足Spring格式: <?xml version="1.0" encoding="UTF-8"?> ...

随机推荐

  1. css绝对定位问题

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. “请运行Chkdsk工具”怎么解决

    今天重新系统,想从移动硬盘中拷贝数据,但是老是提示:“请运行Chkdsk工具” 于是在百度搜索一下,有人提供的解决方案很不错,在些引用一下,以备忘! 电脑上经常遇到这样的提示“某某某文件已损坏且无法读 ...

  3. Array,ArrayList、List<T>、HashSet<T>、LinkedList<T>与Dictionary<K,V>

    Array: 数组在C#中最早出现的.在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单. 但是数组存在一些不足的地方.在数组的两个数据间插入数据是很麻烦的,而且在声明数组的时候 ...

  4. UUID生成

    >>>Arch Linux # uuidgen From: http://os.51cto.com/art/200709/56613.htm >>>Debian j ...

  5. Django base view

    class django.views.generic.base.View 它是基类的基类,其它View基类都是从这继承的. 官例: from django.http import HttpRespon ...

  6. IIS7 rename application or site

    rename site 比较容易,在IIS里面就可以直接 rename,也可以用 cmd 的方式 1. 打开 cmd 2. cd C:\Windows\System32\inetsrv 3. appc ...

  7. Flex 加载tiff

    gis系统常常要加载tiff,因为好多土地证书,各种文件都是扫描件,如果你是用as来写的前台,怎么加载呢,顺便说下用插件AlternaTIFF也是可以得不过浏览器加载这么多插件是不太好的. 首先TIF ...

  8. Thinkphp源码分析系列–开篇

    目前国内比较流行的php框架由thinkphp,yii,Zend Framework,CodeIgniter等.一直觉得自己在php方面还是一个小学生,只会用别人的框架,自己也没有写过,当然不是自己不 ...

  9. Servlet Cookie处理

    Servlet Cookie 处理 Cookie 是存储在客户端计算机上的文本文件,并保留了各种跟踪信息.Java Servlet 显然支持 HTTP Cookie. 识别返回用户包括三个步骤: 服务 ...

  10. Django过滤器列表

    Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的,如显示格式的转换.判断处理等.以下是 Django 过滤器列表,希望对为大家的开发带来一些方便. 一.形式:小写 ...