怎样删除XML文档的同一个ParentNode下面的多个XmlNode?,不是全部

kelvinlv 2005-08-02 04:56:46
例如:

foreach(XmlNode childnode in ParentNode.ChildNodes)
{
if(childnode.name=="value1")
ParentNode.Remove(childnode);
}

只能删除满足条件的第一个节点.

这个问题困挠我很久了,谢!!
...全文
191 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cuike519 2005-08-02
  • 打赏
  • 举报
回复
XmlDocument是一个将XML的所有节点都装入内存的数据结构,其中提供大量的方法和属性,比如:可以通过一个节点轻松的通过ParentNode获得父节点,或者通过节点的ChildNodes获得该节点的所有子节点集合。孟子E章的方法就说明这个道理,当你定位到某个节点就可以使用Remove方法来删除其子节点。

SelectNodes()这个方法获得一个节点集合,这里可能主要看你的XPath是否写的正确。
kelvinlv 2005-08-02
  • 打赏
  • 举报
回复
用SelectNodes()摆不平啊,

因为条件比较多,且复杂,有下一级的foreach做判断.
kelvinlv 2005-08-02
  • 打赏
  • 举报
回复
上面的代码中,用XmlNodeList好像不好实现.
kelvinlv 2005-08-02
  • 打赏
  • 举报
回复
foreach(XmlNode rows in _dataset.ChildNodes)
{
if(rows.Name!=this.CurrentTableName)
continue;
if(rows.ChildNodes.Count==0)
continue;

find=0;
foreach(XmlNode columns in rows.ChildNodes)
{
for(int i=0;i<fields.Count;i++)
{
if(columns.Name.ToUpper()==fields.Keys[i].Trim().ToUpper()&&columns.InnerText.ToUpper()==fields[i].Trim().ToUpper())
{
find++;
break;
}
}
if(find==fields.Count)
break;
}
//删除,注意这一行
if(find==fields.Count)
{
rows.ParentNode.RemoveChild(rows);
}
}
this._doc.Save(this._filename);
}
lovefootball 2005-08-02
  • 打赏
  • 举报
回复
net_lover(孟子E章) 正解

来晚了


孟子E章 2005-08-02
  • 打赏
  • 举报
回复
XmlNodeList nodes = doc.SelectNodes("//条件");
for(int i = 0;i<nodes.Count;i++)
nodes[i].ParentNode.RemoveChild(nodes[i]);
孟子E章 2005-08-02
  • 打赏
  • 举报
回复
XmlNodeList nodes = doc.SelectNodes("//条件");


foreach(XmlNode childnode in nodes)

childnode.ParentNode.RemoveChild(childnode);
}
孟子E章 2005-08-02
  • 打赏
  • 举报
回复
foreach(XmlNode childnode in ParentNode.ChildNodes)
{
if(childnode.name=="value1")
ParentNode.RemoveChild(childnode);
}

kelvinlv 2005-08-02
  • 打赏
  • 举报
回复
自己顶一下..

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧