xml学习(8) xml增删改查

前端之家收集整理的这篇文章主要介绍了xml学习(8) xml增删改查前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在项目开发中,我们经常会对某张表进行增删改查。我们根据条件刷选表中的数据放到gridview中以列表形式展现,同时给gridview添加各种样式,比如一般必用的鼠标经过,鼠标离开颜色变化,行选中等颜色加深,同时给列表数据项赋值,单击保存按钮可以修改一条已存在的数据或者添加一条新的数据,单击按钮添加,列表数据项清空,单击删除,可以删除一条数据。

由于为了方便大家把代码复制一下,在脱离数据的情况下,就可以看到效果,所以,我把数据存放在xml,所以读取数据不是通过数据库,是通过跟xml文件交互实现的。所以做了下面对xml增删改查页面

效果图:




首先列出XML文件,方便代码参照

内容.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <config>
  3. <Header ID="ID" class="class" class_name="class_name" year="year" school="school" count="count">
  4. </Header>
  5. <rows ID="01" class="一五班" class_name="实验班" year="2013" school="三峡高级中学" count="30">
  6. </rows>
  7. <rows ID="02" class="一六班" class_name="奥数班" year="2013" school="三峡高级中学" count="45">
  8. </rows>
  9. <rows ID="03" class="一七班" class_name="阳光班" year="2013" school="三峡高级中学" count="60">
  10. </rows>
  11. <rows ID="04" class="一八班" class_name="美术班" year="2013" school="三峡高级中学" count="75">
  12. </rows>
  13. </config>


一,核心代码

1) 修改xml

  1. /// <summary>
  2. /// 修改XML
  3. /// </summary>
  4. /// <param name="xmlName">XML文件名</param>
  5. /// <param name="ht">存放信息哈希表</param>
  6. /// <param name="ID">主键值</param>
  7. public void saveXML(string xmlName,Hashtable ht,string ID)
  8. {
  9. string fileName=HttpContext.Current.Request.PhysicalApplicationPath+"\\Xml\\"+xmlName+".xml";//xml的物理路径
  10. XmlDocument xmlDoc=new XmlDocument ();
  11. xmlDoc.Load(fileName);
  12. XmlNode node = xmlDoc.SelectSingleNode("config/rows[@ID=" + ID + "]");
  13. foreach (XmlNode node1 in node.Attributes)
  14. {
  15. if (ht.ContainsKey(node1.Name)&&node1.Name!="ID")
  16. {
  17. node1.Value = ht[node1.Name].ToString();
  18. }
  19. }
  20. xmlDoc.Save(fileName);
  21. }

ht:

  1. Hashtable ht = new Hashtable();
  2. ht.Add("ID",this.txt_ID.Value);
  3. ht.Add("class",this.txt_class.Value);
  4. ht.Add("class_name",this.txt_class_name.Value);
  5. ht.Add("year",this.txt_year.Value);
  6. ht.Add("school",this.txt_school.Value);
  7. ht.Add("count",this.txt_count.Value);

2)插入xml

  1. /// <summary>
  2. /// 插入xml
  3. /// </summary>
  4. /// <param name="xmlName">XML文件名</param>
  5. /// <param name="ht">存放信息哈希表</param>
  6. /// <returns></returns>
  7. public string insertXml(string xmlName,Hashtable ht)
  8. {
  9. string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\\Xml\\" + xmlName + ".xml";//xml的物理路径
  10. XmlDocument xmlDoc = new XmlDocument();
  11. xmlDoc.Load(fileName);
  12. XmlNode node = xmlDoc.SelectSingleNode("//rows[last()]");//最后一个行节点
  13. XmlNode MaxNode = xmlDoc.SelectSingleNode("//rows/@ID[not(.<//rows/@ID)]");//获取主键最大值
  14. if (int.Parse(ht[MaxNode.Name].ToString()) <= int.Parse(MaxNode.Value))//如果小于主键最大值,那么返回-
  15. {
  16. return "-1";
  17. }
  18. XmlElement xe = xmlDoc.CreateElement("rows");
  19. xe.InnerText = "";
  20. foreach (XmlNode node1 in node.Attributes)
  21. {
  22. if (ht.ContainsKey(node1.Name))
  23. {
  24. xe.SetAttribute(node1.Name,ht[node1.Name].ToString());
  25. }
  26. else
  27. {
  28. xe.SetAttribute(node1.Name,"");
  29. }
  30. }
  31. node.ParentNode.AppendChild(xe);
  32. xmlDoc.Save(fileName);
  33. return "1";
  34. }


3) 删除xml

  1. /// <summary>
  2. /// 删除xml节点
  3. /// </summary>
  4. /// <param name="xmlName">XML文件名</param>
  5. /// <param name="ID">主键值</param>
  6. /// <param name="primaryKey">主键名</param>
  7. /// <returns></returns>
  8. public string deleteXml(string xmlName,string ID,string primaryKey)
  9. {
  10. string rtn = string.Empty;
  11. string fileName = HttpContext.Current.Request.PhysicalApplicationPath + "\\Xml\\" + xmlName + ".xml";//xml的物理路径
  12. XmlDocument xmlDoc = new XmlDocument();
  13. xmlDoc.Load(fileName);
  14. XmlNode node = xmlDoc.SelectSingleNode("//rows[@"+primaryKey+"='"+ID+"']");//最后一个行节点
  15. if (node ==null)
  16. {
  17. rtn = "-1";
  18. }
  19. else
  20. {
  21. node.ParentNode.RemoveChild(node);
  22. rtn = "1";
  23. }
  24. xmlDoc.Save(fileName);
  25. return rtn;
  26. }

4)html显示xml在以前的内容已经介绍过


如果是看具体的实现代码,可以下载:

http://download.csdn.net/detail/yucihai/6641293

猜你在找的XML相关文章