使用XmlDocument创建XML文档及增加删除更新节点

  1. //origin http://blog.csdn.net/amandag/article/details/2623322
  2. using System;  
  3. using System.Windows.Forms;  
  4. using System.Xml;  
  5.   
  6. namespace XMLDemo  
  7. {  
  8.     public partial class FrmDOM : Form  
  9.     {  
  10.         public FrmDOM()  
  11.         {  
  12.             InitializeComponent();  
  13.         }  
  14.   
  15.         private void btnLoad_Click(object sender, EventArgs e)  
  16.         {  
  17.             XmlDocument xmlDoc = new XmlDocument();  
  18.             xmlDoc.Load("Books.xml");  
  19.             MessageBox.Show(xmlDoc.InnerXml);  
  20.         }  
  21.   
  22.         private void btnCreate_Click(object sender, EventArgs e)  
  23.         {  
  24.             //xml文档  
  25.             XmlDocument xmlDoc = new XmlDocument();  
  26.             XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0""utf-8"null);  
  27.             xmlDoc.AppendChild(dec);  
  28.   
  29.             //创建根节点   
  30.             XmlElement root = xmlDoc.CreateElement("Books");  
  31.             xmlDoc.AppendChild(root);  
  32.   
  33.             //节点及元素  
  34.             XmlNode book = xmlDoc.CreateElement("Book");  
  35.             XmlElement title = GetXmlElement(xmlDoc, "Title""Window Form");  
  36.             XmlElement isbn = GetXmlElement(xmlDoc, "ISBN""111111");  
  37.             XmlElement author = GetXmlElement(xmlDoc, "Author""amandag");  
  38.             XmlElement price = GetXmlElement(xmlDoc, "Price""128.00");  
  39.             price.SetAttribute("Unit""¥");  
  40.   
  41.             book.AppendChild(title);  
  42.             book.AppendChild(isbn);  
  43.             book.AppendChild(author);  
  44.             book.AppendChild(price);  
  45.             root.AppendChild(book);  
  46.   
  47.             xmlDoc.Save("Books.xml");  
  48.             MessageBox.Show("数据已写入!");  
  49.         }  
  50.   
  51.         private void btnInsert_Click(object sender, EventArgs e)  
  52.         {  
  53.             XmlDocument xmlDoc = new XmlDocument();  
  54.             xmlDoc.Load("Books.xml");  
  55.   
  56.             XmlNode root = xmlDoc.SelectSingleNode("Books");  
  57.   
  58.             XmlElement book = xmlDoc.CreateElement("Book");  
  59.             XmlElement title = GetXmlElement(xmlDoc, "Title""ASP.NET");  
  60.             XmlElement isbn = GetXmlElement(xmlDoc, "ISBN""222222");  
  61.             XmlElement author = GetXmlElement(xmlDoc, "Author""moon");  
  62.             XmlElement price = GetXmlElement(xmlDoc, "Price""111.00");  
  63.             price.SetAttribute("Unit", "{1}quot;);  
  64.   
  65.             book.AppendChild(title);  
  66.             book.AppendChild(isbn);  
  67.             book.AppendChild(author);  
  68.             book.AppendChild(price);  
  69.             root.AppendChild(book);  
  70.   
  71.             xmlDoc.Save("Books.xml");  
  72.             MessageBox.Show("数据已插入!");  
  73.         }  
  74.   
  75.         private void btnUpdate_Click(object sender, EventArgs e)  
  76.         {  
  77.             XmlDocument xmlDoc = new XmlDocument();  
  78.             xmlDoc.Load("Books.xml");  
  79.   
  80.             //方法1:获取Books//Book节点的第一个子节点   
  81.             XmlNodeList nodeList = xmlDoc.SelectSingleNode("Books//Book").ChildNodes;  
  82.             XmlElement xe = null;  
  83.             //遍历所有子节点   
  84.             foreach (XmlNode xn in nodeList)  
  85.             {  
  86.                 //将子节点类型转换为XmlElement类型   
  87.                 xe = (XmlElement)xn;  
  88.                 if (xe.Name == "Author" && xe.InnerText == "amandag")  
  89.                 {  
  90.                     xe.InnerText = "高歌";  
  91.                 }  
  92.   
  93.                 if (xe.GetAttribute("Unit") == "¥")  
  94.                 {  
  95.                     xe.SetAttribute("Unit", "{1}quot;);  
  96.                 }  
  97.             }  
  98.   
  99.             //方法2:  
  100.             XmlNode node = xmlDoc.SelectSingleNode("Books//Book[Author=\"moon\"]//Author");  
  101.             if(node != null)  
  102.             {  
  103.                 node.InnerText = "宝贝";  
  104.             }  
  105.       
  106.             xmlDoc.Save("Books.xml");  
  107.             MessageBox.Show("数据已更新!");  
  108.         }  
  109.   
  110.         private void btnDelete_Click(object sender, EventArgs e)  
  111.         {  
  112.             XmlDocument xmlDoc = new XmlDocument();  
  113.             xmlDoc.Load("Books.xml");  
  114.   
  115.             XmlNodeList nodeList = xmlDoc.SelectNodes("Books//Book//Price[@Unit=\"$\"]");  
  116.   
  117.             //遍历所有子节点   
  118.             foreach (XmlNode xn in nodeList)  
  119.             {  
  120.                 XmlElement xe = (XmlElement)xn;  
  121.                 xe.RemoveAttribute("Unit");  
  122.             }  
  123.             xmlDoc.Save("Books.xml");  
  124.             MessageBox.Show("数据已删除!");  
  125.         }  
  126.   
  127.         private XmlElement GetXmlElement(XmlDocument doc, string elementName, string value)  
  128.         {  
  129.             XmlElement element = doc.CreateElement(elementName);  
  130.             element.InnerText = value;  
  131.             return element;  
  132.         }  
  133.     }  
  134. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值