2016-11-29 15 views
0

im xmlファイルからxmlノードを削除できません。私のコードで何が問題なのかわかりません。私はどこイム間違って私に知らせてください、XML文書の形式はxmlNodeが削除されない

<?xml version="1.0"?> 
<Apartments> 
<Family> 
<Father>Father1</Father> 
<Mother>Mother1</Mother> 
<Daughter>Daughter1</Daughter> 
<Son>Son1</Son> 
</Family> 
<Family> 
<Father>Father2</Father> 
<Mother>Mother2</Mother> 
<Daughter>Daughter2</Daughter> 
<Son>Son2</Son> 
</Family> 
<Family> 
<Father>Father3</Father> 
<Mother>Mother3</Mother> 
<Daughter>Daughter3</Daughter> 
<Son>Son3</Son> 
</Family> 
<Family> 
<Father>Father4</Father> 
<Mother>Mother4</Mother> 
<Daughter>Daughter4</Daughter> 
<Son>Son4</Son> 
</Family> 
</Apartments> 

ある

class Program 
{ 
    static void Main(string[] args) 
    { 
     XmlDocument xDoc=new XmlDocument(); 
     xDoc.Load(@"C:\Users\MyUser\Desktop\Family.xml"); 

     //try 1 
     XmlNode firstNode=xDoc.SelectSingleNode("Apartments/Family[Father='Father1']"); 
     xDoc.LastChild.RemoveChild(firstNode); 
     xDoc.RemoveAll(); 


     //Try2 
     XmlNodeList nodeColl = xDoc.GetElementsByTagName("Apartments/Family"); 

     foreach (XmlNode xNode in nodeColl) 
     { 
      if (xNode["Father"].InnerText == "Father1") 
      { 
       xNode.ParentNode.RemoveChild(xNode); 
      } 
     } 
     // firstNode.ParentNode.RemoveChild(firstNode); 
    } 
} 

私のコードを添付しています。

+4

あなたはファイルを読み込み、ファイルを解析し、解析されたツリーから要素を削除します...新しいXMLをファイルに書き戻していますか? –

答えて

1

変更後、変更をファイルに保存する必要があります。

XmlDocument xDoc=new XmlDocument(); 
xDoc.Load(@"C:\Users\MyUser\Desktop\Family.xml"); 

XmlNodeList nodeColl = xDoc.GetElementsByTagName("Apartments/Family"); 

foreach (XmlNode xNode in nodeColl) 
{ 
    if (xNode["Father"].InnerText == "Father1") 
    { 
     xNode.ParentNode.RemoveChild(xNode); 
    } 
} 
// save the changes back to file 
xDoc.Save(@"C:\Users\MyUser\Desktop\Family.xml"); 
+0

ありがとうございました – user1531912

関連する問題