2010-07-15 5 views
3

Je voudrais simplement supprimer ce un noeud, par exemple:Suppression d'un nœud enfant à l'aide RemoveChild()

<Sample ID="544" Type="0">Sample2</Sample>

de ce XML, par exemple:

<Tests> <Test ID="0" AllowMultipleSelect="1"> 
    <Name>BaseSamples</Name> 
    <Sample ID="546" Type="0">Sample1 </Sample> 
    <Sample ID="135" Type="0">Sample45</Sample> 
    <Sample ID="544" Type="0">Sample2</Sample> 
    <Sample ID="5818" Type="0" >Sample78</Sample> 
    </Test> 
    </Tests> 

pour que mon résultats quelque chose comme ceci:

<Tests> <Test ID="0" AllowMultipleSelect="1"> 
    <Name>BaseSamples</Name> 
    <Sample ID="546" Type="0">Sample1 </Sample> 
    <Sample ID="135" Type="0">Sample45</Sample> 
    <Sample ID="5818" Type="0" >Sample78</Sample> 
    </Test> 
    </Tests> 

Je serais d'accord avec la suppression d'un nœud un t une fois (puisque j'ai mis une boucle pour vérifier les ID d'échantillon qui doivent être supprimés) Toute aide serait appréciée, merci d'avance.

Répondre

2

à cet en ligne avec une recherche simple:

XmlNode node = document.SelectSingleNode("/Tests/Test/Sample[@id='544']"); 
node.ParentNode.RemoveChild(t); 
document.Save(); 
2

Je ne l'ai pas testé ce code, mais il devrait fonctionner.

XmlDocument xDoc = new XmlDocument(); 
xDoc.Load("file.xml"); 
xDoc.RemoveChild(xDoc.SelectSingleNode("//Sample[@ID='554']")); 
5
XmlElement el = (XmlElement)originalXml.SelectSingleNode("/Tests/Test/Sample[@id='544']"); 
      if (el != null) { 
       el.ParentNode.RemoveChild(el); 
       originalXml.Save(@"d:\file.xml"); 
      } 
Questions connexes