gpt4 book ai didi

c# - 从 XmlDocument 中删除子节点并包括元素的父节点

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:29 25 4
gpt4 key购买 nike

我得到的代码看起来像这样。

    public void Delete(Feed item)
{
XmlDocument doc = new XmlDocument();
doc.Load("Feed.xml");
XmlNodeList nodes = doc.SelectNodes("/Feeds/Input");
foreach (XmlNode noden in nodes)
{
if (noden.SelectSingleNode("Id").InnerText == item.Id.ToString())
{
nodes[iterator].RemoveAll();
noden.RemoveAll();

break;
}
}
doc.Save("Feed.xml");
}

这是我的xml的例子

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Feeds>
<Input>
<Name>Examplename</Name>
<Id>572b9c08-0d76-415d-9b53-ac2e87fceae6</Id>
<Url>Examppleurl</Url>
<Category>Logic.Entities.Category</Category>
<Feed>
<Id>ExampleID</Id>
<Title>12. A strange week to be Swedish</Title>
<Enclosure>example.mp3</Enclosure>
</Feed>
<Feed>
<Id>anotherexampleid</Id>
<Title>11. The not-Malala-guy</Title>
<Enclosure>another example.mp3</Enclosure>
</Feed>
</Input>
<Input>
<Feeds>
<Input>
<Name>Examplename</Name>
<Id>572b9c08-0d76-415d-9b53-ac2e87fceae6</Id>
<Url>Examppleurl</Url>
<Category>Logic.Entities.Category</Category>
<Feed>
<Id>ExampleID</Id>
<Title>12. A strange week to be Swedish</Title>
<Enclosure>example.mp3</Enclosure>
</Feed>
<Feed>
<Id>anotherexampleid</Id>
<Title>11. The not-Malala-guy</Title>
<Enclosure>another example.mp3</Enclosure>
</Feed>
</Input>
</Input>
</Feeds>

当我像上面的代码一样删除它时,它会删除我想要的那个,但留下一个空的

<input>
</input>

所以我的问题是我想删除空输入...我该如何处理?

谢谢。

最佳答案

您只能选择<Input>使用更具体的 XPath 删除节点:

string xpath = String.Format("/Feeds/Input[Id='{0}']", item.Id.ToString());
XmlNodeList nodes = doc.SelectNodes(xpath);

然后像这样删除它们:

foreach (XmlNode noden in nodes)
{
noden.ParentNode.RemoveChild(noden);
}

关于c# - 从 XmlDocument 中删除子节点并包括元素的父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26586663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com