繁体   English   中英

如何从xml删除子记录

[英]How to delete a child record from xml

我正在尝试删除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);
  }

我看到的错误
{System.ArgumentException:要删除的节点不是该节点的子节点。

请帮我。

结果XML应该看起来像

  <Main>
    <Student>
      <name>paul</name>
    </Student>
  </Main>

Linq2Xml会更容易

var xDoc = XDocument.Load(filename);
xDoc.Root.Element("cat").Remove();
xDoc.Save(filename);

PS:名称空间: System.Xml.Linq

编辑

使用XmlDocument

XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("main.xml"));

XmlNode node = xdoc.GetElementsByTagName("cat")[0];
node.ParentNode.RemoveChild(node);

xdoc.Save(filename);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM