簡體   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