C# 添加,修改,删除Xml节点
//添加xml节点
private void AddXml(string image, string title)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("../flash/dati.xml"));
XmlElement xe1 = xmlDoc.CreateElement("thumb");//创建一个<thumb>节点
xe1.SetAttribute("displayNum", "6");//设置该节点displayNum属性
xe1.SetAttribute("separation", "5");//设置该节点separation属性
xesub1.InnerText = image;//设置文本节点
xe1.AppendChild(xesub1);//添加到thumb节点中
XmlElement xesub2 = xmlDoc.CreateElement("description");
xesub2.InnerText = title;
xe1.AppendChild(xesub2);
xmlDoc.Save(Server.MapPath("../flash/dati.xml"));
}
private void DelXml(string image)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("../flash/dati.xml"));
XmlNodeList xnl = xmlDoc.SelectSingleNode("images").ChildNodes;
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;
if (xe.InnerText.IndexOf(image,0) >= 0)
{
xn.ParentNode.RemoveChild(xn);
// xn.RemoveAll();
}
}
xmlDoc.Save(Server.MapPath("../flash/dati.xml"));
}
{
XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
if(xe.GetAttribute("genre")=="")// 判读条件
{
xe.SetAttribute("genre",newStr);//则修改该属性为newstr
XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
foreach(XmlNode xn1 in nls)//遍历
{
XmlElement xe2=(XmlElement)xn1;//转换类型
if(xe2.Name=="author")//如果找到 //判读条件
{
xe2.InnerText=newText;//则修改
break;//找到退出来就可以了
}
}
break;
}
这里介绍添加XML节点的方法。
首先定义XML文件:(bookstore.xml)
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book genre="fantasy" ISBN="2-9088-1">
<title>Oberon's Legacy</title>
<author>Corets,Eva</author>
<price>20.8</price>
</book>
</bookstore>
OK,这就是有一个简单节点的xml文件,它有一个根节点bookstore,其子节点为book,其中book有两个属性genre 和ISBN,每个book节点又三个子节点title,author 和price。
下面给这个xml文件添加一个book子节点:
1.引用XML名称空间: Imports System.xml
2.定义一个读取xml文件的方法,暂且这么说吧:
Dim xmlDoc as New xmlDocument
xmlDoc.Load("bookstore.xml")
3.定义根结点,并找到根据节点名字找到根结点
Dim root as XmlNode =xmlDoc.SelectSingleNode("bookstore")
4.定义一级子节点,注意根结点与子节点的定义方式不同
Dim xelement as XmlElement =xmlDoc.CreateElement("book")
xelement.SetAttribute("genre","comedy") //给一级子节点添加两个属性
xelement.SetAttribute("ISBN","2-0875-3")
5.定义二级子节点。节点的定义方式都是相同的,只是赋值的方式有所差别。这里需要定义三个二阶子节点
Dim xesub1 as XmlElement =xmlDoc.CreateElement("title")
xesub1.InnerText ="c#" //给二级子节点赋值
xelement.AppendChild(xesub1) //将这个二阶子节点添加给一级子节点
Dim xesub2 as XmlElement =xmlDoc.CreateElement("author")
xesub2.InnerText ="rubby"
xelement.AppendChild(xesub2)
Dim xesub3 as XmlElement =xmlDoc.CreateElement("price")
xesub3.InnerText ="20.8"
xelement.AppendChild(xesub3)
6.将子节点添加到根节点中去,并保存该xml文件
root.AppendChild(xelement)
xmlDoc.Save("bookstore.xml")
好了,我们再打开xml文件就会发现,已经新添加了一个book子节点了