Delete XML Node using C#

Read the xml file.

This function is use for delete xml node dynamically.

    /// <summary>
    ///

    ///
</summary>
    /// <param name="path">xml file path
</param>
    /// <param name="tagname">root tagname
</param>
    /// <param name="searchconditionAttributename">Search Attribute Name
</param>
    /// <param name="searchconditionAttributevalue">Search Attribute Value
</param>

    private static void DeleteXmlNode(string path, string tagname, string searchconditionAttributename, string searchconditionAttributevalue)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(path);
        XmlNodeList nodes = doc.GetElementsByTagName(tagname);\
      
//XmlNodeList nodes = doc.GetElementsByTagName("user");

        foreach (XmlNode node in nodes)
        {

            foreach (XmlAttribute attribute in node.Attributes)

            {

                if ((attribute.Name == searchconditionAttributename) && (attribute.Value == searchconditionAttributevalue))

               
//if ((attribute.Name == "name") && (attribute.Value == "aaa"))

                {

                   
//delete.

                    node.RemoveAll();

                    break;

                }

            }

        }

       
//save xml file.

        doc.Save(path);

    }
 

This function is use for edit node in xml.

  /// <summary>
    ///

    ///
</summary>
    /// <param name="path">xml file path
</param>
    /// <param name="tagname">root tagname
</param>
    /// <param name="searchconditionAttributename">Search Attribute Name
</param>
    /// <param name="searchconditionAttributevalue">Search Attribute Value
</param>
    /// <param name="editAttributename">Edit Attribute Name
</param>
    /// <param name="editAttributevalue">Edit Attribute Value
</param>

    private static void EditXmlNode(string path, string tagname, string searchconditionAttributename, string searchconditionAttributevalue, string editAttributename, string editAttributevalue)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(path);

        XmlNodeList nodes = doc.GetElementsByTagName(tagname);
       
// XmlNodeList nodes = doc.GetElementsByTagName("user");

        foreach (XmlNode node in nodes)

        {

            bool newnode = true;

           
//Check attribute eixt which we want to edit.

            bool isEdit = false;

            foreach (XmlAttribute attribute in node.Attributes)

            {

               
//if ((attribute.Name == "name") && (attribute.Value == "ddd"))

                if ((attribute.Name == searchconditionAttributename) && (attribute.Value == searchconditionAttributevalue))

                {

                    isEdit = true;

                }

                if (isEdit)

                {

                   
// if (attribute.Name == "expireson")

                    if (attribute.Name == editAttributename)

                    {

                       
//attribute.Value = "2011-12-28";

                        attribute.Value = editAttributevalue;

                        break;

                    }

                }

            }

            newnode = false;

        }

       
//save xml file.

        doc.Save(path);

    }

I use following .xml file

<?xml version="1.0" encoding="utf-8"?>
<
users>
  <
user />
  <
user name='aaa' password='111' status='0' expireson='2012-12-31' createdon='2011-05-31' />
  <
user name='bbb' password='222' status='0' expireson='2012-12-31' createdon='2011-05-31'/>
  <
user name='ccc' password='333' status='0' expireson='2011-12-31' createdon='2011-05-31'/>
  <
user name='ddd' password='444' status='0' expireson='2011-12-31' createdon='2011-05-31'/>
</
users>

Next Recommended Reading Deserialize XML with Array Node In C#