I have a XML file in my Visual Web Developer project that looks like this:
<?xml version="1.0" encoding="utf-8"?>
<complaints>
<complaint>
<user>omern</user>
<content>asd</content>
<ID>1</ID>
</complaint>
<complaint>
<user>omeromern</user>
<content>try2</content>
<ID>2</ID>
</complaint>
</complaints>
I want to delete complaint
nodes that have and ID
of 2. How can I do this?
You can use the System.Xml.XmlDocument
class to modify XML documents in C#. Note that this class lives in the System.Xml.dll
assembly, so you will need to add a reference to System.Xml
in your project.
using System.Xml;
internal class XmlExample
{
/// <summary>
/// Takes an XML string and removes complaint nodes with an ID of 2.
/// </summary>
/// <param name="xml">An XML document in string form.</param>
/// <returns>The XML document with nodes removed.</returns>
public static string StripComplaints(string xml)
{
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(xml);
XmlNodeList nodes = xdoc.SelectNodes("/complaints/complaint[ID = '2']");
XmlNode complaintsNode = xdoc.SelectSingleNode("/complaints");
foreach (XmlNode n in nodes)
{
complaintsNode.RemoveChild(n);
}
return xdoc.OuterXml;
}
}
Usage:
string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
<complaints>
<complaint>
<user>omern</user>
<content>asd</content>
<ID>1</ID>
</complaint>
<complaint>
<user>omeromern</user>
<content>try2</content>
<ID>2</ID>
</complaint>
</complaints>";
xml = XmlExample.StripComplaints(xml);