如何从xml中删除子记录
本文关键字:删除 记录 xml | 更新日期: 2023-09-27 18:15:20
我试图在xml中删除ChildRecord <cat>
。
这里是源XML
<Main>
<Student>
<name>paul</name>
</Student>
<cat>
<category>
<id>1</id>
<name>Architecture</name>
</category>
<category>
<id>2</id>
<name>Education</name>
</category>
</cat>
</Main>
我试过这个代码。
XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("main.xml"));
XmlNodeList nodes = xdoc.GetElementsByTagName("cat");
foreach (XmlNode node in nodes)
{
xdoc.RemoveChild(node);
}
Error I'm seeing
{系统。ArgumentException:要删除的节点不是这个节点的子节点。
请帮帮我。
结果XML应该看起来像
<Main>
<Student>
<name>paul</name>
</Student>
</Main>
使用Linq2Xml会更容易
var xDoc = XDocument.Load(filename);
xDoc.Root.Element("cat").Remove();
xDoc.Save(filename);
PS: namespace: System.Xml.Linq
编辑
使用XmlDocumentXmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("main.xml"));
XmlNode node = xdoc.GetElementsByTagName("cat")[0];
node.ParentNode.RemoveChild(node);
xdoc.Save(filename);