关键词搜索

源码搜索 ×
×

C#编程之XML文件对象增删改操作

发布2013-11-30浏览1802次

详情内容

      在windows mobile开发中,网络不畅的情况下数据可以暂存在XML文件中,等网络通畅时再进行数据库同步传输。但是,此种方式处理本地存储弊端很大:XML文件中对象在不断增多的过程中,程序需要遍历对象的次数也在增多,所以不推荐使用XML作为本地暂存方案;推荐使用sdf本地数据库来实现少量数据的本地操作。

1、创建C#控制台应用程序

 此时可以同时生成其解决方案,如我的项目在:D:\VS_PROGRAM_PROJECT\ConsoleAppXMLoperate,项目名称为ConsoleAppXMLoperate。


2、在主程序中编写XML操作代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Xml.Schema;
  4. using System.Text;
  5. namespace ConsoleAppXMLoperate
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. Console.WriteLine("yyyy-MM-dd HH:mm:ss" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  12. //Program.insertNode();
  13. //Program.updateNode();
  14. Program.deleteNode();
  15. }
  16. /**
  17. * 添加节点信息
  18. *
  19. * 往<bookstore>节点中插入一个<book>节点
  20. */
  21. public static void insertNode() {
  22. System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
  23. xmlDoc.Load("bookstore.xml");
  24. //查找<bookstore>
  25. System.Xml.XmlNode root = xmlDoc.SelectSingleNode("bookstore");
  26. //创建一个<book>节点
  27. System.Xml.XmlElement book = xmlDoc.CreateElement("book");
  28. //设置该节点genre属性
  29. book.SetAttribute("genre", "boonya");
  30. //设置该节点ISBN属性
  31. book.SetAttribute("ISBN", "https://cdn.jxasp.com:9143/image/2-3631-4");
  32. System.Xml.XmlElement bookNode1 = xmlDoc.CreateElement("title");
  33. //设置文本节点
  34. bookNode1.InnerText = "Java";
  35. //添加到<book>节点中
  36. book.AppendChild(bookNode1);
  37. System.Xml.XmlElement bookNode2 = xmlDoc.CreateElement("author");
  38. bookNode2.InnerText = "Simith Talent";
  39. book.AppendChild(bookNode2);
  40. System.Xml.XmlElement bookNode3 = xmlDoc.CreateElement("price");
  41. bookNode3.InnerText = "58.3";
  42. book.AppendChild(bookNode3);
  43. //添加到<bookstore>节点中
  44. root.AppendChild(book);
  45. xmlDoc.Save("bookstore.xml");
  46. }
  47. /**
  48. * 修改节点信息
  49. *
  50. * 将genre属性值为“bonnya“的节点的genre值改为“updateboonya”,将该节点的子节点<author>的文本修改为“boonya”。
  51. */
  52. public static void updateNode() {
  53. System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
  54. xmlDoc.Load("bookstore.xml");
  55. //获取bookstore节点的所有子节点
  56. System.Xml.XmlNodeList nodeList = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
  57. foreach (System.Xml.XmlNode xn in nodeList)//遍历所有子节点
  58. {
  59. //将子节点类型转换为XmlElement类型
  60. System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;
  61. //如果genre属性值为“bonnya”,则修改该属性为“updatebonnya”
  62. if (xe.GetAttribute("genre").Equals("bonnya"))
  63. {
  64. xe.SetAttribute("genre", "updatebonnya");
  65. System.Xml.XmlNodeList nls = xe.ChildNodes;
  66. //继续遍历获取xe子节点的所有子节点
  67. foreach (System.Xml.XmlNode xn1 in nls)
  68. {
  69. System.Xml.XmlElement xe2 = (System.Xml.XmlElement)xn1;
  70. if (xe2.Name == "author")
  71. {
  72. xe2.InnerText = "boonya";
  73. break;
  74. }
  75. }
  76. break;
  77. }
  78. }
  79. xmlDoc.Save("bookstore.xml");
  80. }
  81. /**
  82. * 删除节点信息
  83. *
  84. * 删除 <book genre="bonnya" ISBN="https://cdn.jxasp.com:9143/image/2-3631-4">节点。
  85. */
  86. public static void deleteNode() {
  87. System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
  88. xmlDoc.Load("bookstore.xml");
  89. System.Xml.XmlNodeList xnl = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
  90. foreach (System.Xml.XmlNode xn in xnl)
  91. {
  92. System.Xml.XmlElement xe = (System.Xml.XmlElement)xn;
  93. if (xe.GetAttribute("genre") == "boonya")
  94. {
  95. //删除book对象
  96. xe.ParentNode.RemoveChild(xe);
  97. }
  98. }
  99. xmlDoc.Save("bookstore.xml");
  100. }
  101. }
  102. }

3、添加XML文件

在项目路径的bin\Debug下添加你的XML文件,如下图:

bookstore.xml文件的内容如下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <bookstore>
  3. <book ISBN="1-3631-4">
  4. <title>Oberon's Legacy</title>
  5. <author>Corets, Eva</author>
  6. <price>5.95</price>
  7. </book>
  8. </bookstore>

4、测试程序

依次打开main函数的方法进行测试,也可以全部打开在里面设置断点调试就行。

  1. static void Main(string[] args)
  2. {
  3. Console.WriteLine("yyyy-MM-dd HH:mm:ss" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
  4. //Program.insertNode();
  5. //Program.updateNode();
  6. Program.deleteNode();
  7. }
资源下载地址: http://download.csdn.net/detail/boonya/6636299

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载