对已经有的xml文件添加删除节点怎么 *** 作

对已经有的xml文件添加删除节点怎么 *** 作,第1张

没接触过对xml的 *** 作...

既然是在页面上 *** 作,就是对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)

运行之后文档变为:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7996178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存