既然是在页面上 *** 作,就是对DOM节点的 *** 作;
$(obj).remove() //这是移除对象节点
$(obj).html('xxxxx') $(obj).append()等方法也都可以对dom结构进行更改 *** 作。
如果是我所说的dom节点 *** 作,你可以看下jquery手册里面的“dom处理”,如果不是我也不太清楚了。
删除指定的XML节点
呵呵,今天总算有点成绩了。明白了如何添加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
}
}
// 显示结果
if(isFinded)
Response.Write ("已删除")
else
Response.Write ("未找到相应的记录")
}
</Script>
假设有如下XML文件:
<?xml version="1.0" encoding="utf-8"?><books>
<book name="失踪的孩子" isbn="9787020139927" author="[意] 埃莱娜·费兰特 "/>
<book name="我要快乐,不必正常" isbn="9787559614988" author=" [英] 珍妮特·温特森 "/>
</books>
如下代码可移除name为"我要快乐,不必正常"的节点:
string filePath = "D:\\XMLFile1.xml"// 创建一个 XML 文档对象
XmlDocument document = new XmlDocument()
// 加载文档
document.Load(filePath)
// 获取所有 book 节点
XmlNodeList nodes = document.GetElementsByTagName("book")
// 遍历节点,如果节点的 name 属性为 "我要快乐,不必正常" ,则从父节点中删除
// 这里之所以从后向前遍历,是为了处理删除节点之后节点集合变化的问题
for (int i = nodes.Count - 1 i >= 0 i--)
{
XmlNode node = nodes[i]
if (node.Attributes["name"] != null
&& node.Attributes["name"].Value == "我要快乐,不必正常")
{
node.ParentNode.RemoveChild(node)
}
}
// 删除节点之后,保存文档;
document.Save(filePath)
运行之后文档变为:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)