对Xml文档进行操作(修改,删除)
<?xml version="1.0" encoding="utf-8"?>
<Products>
? <Product id="0" proName="aa1" proPrice="12" proInfo="bb">
? </Product>
? <Product id="1" proName="電腦" proPrice="3200" proInfo="電腦電腦電腦電腦電腦電腦">
? </Product>
? <Product id="2" proName="mp4" proPrice="400" proInfo="mp4mp4mp4mp4mp4mp4mp4mp4mp4">
? </Product>
? <Product id="3" proName="mp4" proPrice="400" proInfo="mp4mp4mp4mp4mp4mp4mp4mp4mp4">
? </Product>
? <Product id="4" proName="mp5" proPrice="500" proInfo="mp5mp5mp5mp5mp5mp5mp5mp5mp5">
? </Product>
</Products>
下面我們來看看如何對上面的xml文檔進行刪除和修改的操作:
其實很簡單,大概也是分一下幾個步驟:
1、將xml文檔加載到內存中
2、找到要刪除的節點(根據條件)
3、重新保存加載xml文檔
根絕代碼具體來看看如何操作
修改:
? protected void Button2_Click(object sender, EventArgs e)
??? {
??????? XmlDocument xmldocument = new XmlDocument();
??????? string path = Server.MapPath("~/Product.xml");
??????? xmldocument.Load(path);
??????? string xmlPath = "//Products//Product";
????????//根據路徑找到所有節點
??????? XmlNodeList nodeList = xmldocument.SelectNodes(xmlPath);
?????? //循環遍歷這些子
??????? foreach (XmlNode node in nodeList)
??????? {
?????????????//根據節點的某個屬性找到要操作的節點
??????????? if(node.Attributes["id"].Value=="4")
??????????? {
????????????????//對節點進行修改操作
??????????????? node.Attributes["proName"].Value = "aa1";
??????????????? node.Attributes["proPrice"].Value = "12";
??????????????? node.Attributes["proInfo"].Value = "bb";
??????????? }
???????????
??????? }
????????//重新加載保存
??????? xmldocument.Save(path);
??? }
上面是對xml進行的修改的操作,刪除基本和它差不多
刪除
?? protected void Button1_Click(object sender, EventArgs e)
??? {
??????? XmlDocument doc = new XmlDocument();
??????? string path = Server.MapPath("~/Product.xml");
??????? doc.Load(path);
??????? XmlNodeList xmlNodeList = doc.SelectNodes("//Products//Product");
??????? foreach (XmlNode xmlNode in xmlNodeList)
??????? {
??????????? if(xmlNode.Attributes["id"].Value=="4")
??????????? {
???????????????//找到父節點,從父節點刪除該節點
??????????????? xmlNode.ParentNode.RemoveChild(xmlNode);
??????????? }
??????? }
??????? doc.Save(path);
??? }
當然了,也可以刪除通過RomoveAllAttributes,RemoveAttribute或RemoveAttributeAt等來刪除屬性
前端時間,在一本項目教材書上,看到他們對Xml文檔處理的時候,在查找節點的時候用的是索引
XmlNode xmlNode = doc.SelectSingleNode("//Products//Product[5]");
本人認為這種方法不可取,我們一般都會讓你一個id對應一個節點,如果采取這種方式,那么很可能無法找到需要的節點,造成程序方面的錯誤,這是本人的一些見解,大家有什么意見可以提出來,共同學習!
轉載于:https://www.cnblogs.com/shuang121/archive/2011/03/01/1967799.html
總結
以上是生活随笔為你收集整理的对Xml文档进行操作(修改,删除)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: N多喵星人、汪星人喜提华为防丢精灵:画面
- 下一篇: 软件开发七宗罪