Suppression de XML à l’aide d’un Xpath sélectionné et d’une boucle for

J’ai actuellement le code suivant:

XPathNodeIterator theNodes = theNav.Select(theXPath.ToSsortingng()); while (theNodes.MoveNext()) { //some attempts i though were close //theNodes.RemoveChild(theNodes.Current.OuterXml); //theNodes.Current.DeleteSelf(); } 

J’ai défini xpath sur ce que je veux retourner en xml et je veux supprimer tout ce qui est en boucle. J’ai essayé plusieurs façons de supprimer les informations, mais cela ne correspond pas à ma syntaxe. J’ai trouvé un exemple sur le support technique de Microsoft: http://support.microsoft.com/kb/317666 mais j’aimerais utiliser ceci tant que au lieu d’un pour chacun.

Tous les commentaires ou questions sont appréciés.

 ssortingng nodeXPath = "your x path"; XmlDocument document = new XmlDocument(); document.Load(/*your file path*/); XmlNode node = document.SelectSingleNode(nodeXPath); node.RemoveAll(); XmlNode parentnode = node.ParentNode; parentnode.RemoveChild(node); document.Save("File Path"); 

Pourquoi ne pas utiliser XDocument ?

 var xmlText = ""; var document = XDocument.Parse(xmlText); var element = document.XPathSelectElement("Elements/Element1"); element.Remove(); var result = document.ToSsortingng(); 

result sera .

Ou:

 var document = XDocument.Load(fileName); var element = document.XPathSelectElement("Elements/Element1"); element.Remove(); document.Savel(fileName); 

[Modifier] Pour .NET 2, vous pouvez utiliser XmlDocument :

 XmlDocument document = new XmlDocument(); document.Load(fileName); XmlNode node = document.SelectSingleNode("Elements/Element1"); node.ParentNode.RemoveChild(node); document.Save(fileName); 

[MODIFIER]

Si vous devez supprimer tous les éléments enfants et atsortingbuts:

 XmlNode node = document.SelectSingleNode("Elements"); node.RemoveAll(); 

Si vous devez conserver des atsortingbuts, mais supprimez des éléments:

 XmlNode node = document.SelectSingleNode("Elements"); foreach (XmlNode childNode in node.ChildNodes) node.RemoveChild(childNode); 

Vous pouvez utiliser XmlDocument :

 ssortingng nodeXPath = "your x path"; XmlDocument document = new XmlDocument(); document.Load(/*your file path*/);//or document.LoadXml(... XmlNode node = document.SelectSingleNode(nodeXPath); if (node.HasChildNodes) { //note that you can use node.RemoveAll(); it will remove all child nodes, but it will also remove all node' atsortingbutes. for (int childNodeIndex = 0; childNodeIndex < node.ChildNodes.Count; childNodeIndex++) { node.RemoveChild(node.ChildNodes[childNodeIndex]); } } document.Save("your file path"));