呵呵,今天总算有点成绩了。明白了如何添加XML节点,现在又搞懂了如何删除XML节点。下面说一下具体的方法:
下面是XML文档:
<?xml version="1.0" encoding="gb2312"?>
<data>
<list>
<url>cns!1pg3-qZraLhileWMaX48lbhg!246.entry</url>
<title>试用 FCKeditor 2.0 RC3</title>
<rq>6.13</rq>
</list>
<list>
<url>cns!1pg3-qZraLhileWMaX48lbhg!287.entry</url>
<title>比尔盖茨给马化腾的一封信</title>
<rq>6.6</rq>
</list>
<list>
<url>cns!1pg3-qZraLhileWMaX48lbhg!282.entry</url>
<title>溜之大吉 v1.0</title>
<rq>6.2</rq>
</list>
<list>
<url>cns!1pg3-qZraLhileWMaX48lbhg!281.entry</url>
<title>一个女孩儿的自恋</title>
<rq>6.1</rq>
</list>
</data>
要想删除指定的XML节点,必须要有指定的删除条件。在这儿,我选择二项:title、rq。
下面是实现过程(C#代码):
<% @ Page Language="c#" %>
<% @ Import Namespace="System.Xml" %>
<Script Language="C#" Runat="Server">
void Page_Load(){
string theTitle="试用 FCKeditor 2.0 RC3";
string theRq="6.13";
// 创建一个XmlDocument对象
string xmlPath=Server.MapPath("blog.xml");
XmlDocument xmlDoc=new XmlDocument();
// 加载指定的XML数据
xmlDoc.Load(xmlPath);
// 选择匹配 XPath 表达式的第一个 XmlNode
XmlNode root=xmlDoc.SelectSingleNode("data");
// 获取节点的所有子节点
XmlNodeList xnList=root.ChildNodes;
bool isFinded=false;
foreach(XmlNode xn in xnList){
if(xn.SelectSingleNode("title").InnerText==theTitle && xn.SelectSingleNode("rq").InnerText==theRq){
isFinded=true;
root.RemoveChild(xn);// 移除指定的子节点
xmlDoc.Save(xmlPath);
break;
}
}