System.Xml.XmlNodeChangedEventHandler Delegate

Assembly: System.Xml.dll
Namespace: System.Xml
Summary
Represents the method that handles XmlDocument.NodeChanged, XmlDocument.NodeChanging, XmlDocument.NodeInserted, XmlDocument.NodeInserting, XmlDocument.NodeRemoved and XmlDocument.NodeRemoving events.
C# Syntax:
[Serializable]
public delegate void XmlNodeChangedEventHandler(object sender, XmlNodeChangedEventArgs e);
Parameters:
The declaration of your event handler must have the same parameters as the XmlNodeChangedEventHandler delegate declaration.

sender

The source of the event.

e

An XmlNodeChangedEventArgs containing the event data.

Remarks
When you create an XmlNodeChangedEventHandler delegate, you identify the method that handles the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For more information about event handler delegates, see the conceptual topic at MSDN: eventsdelegates.
Example
The following example shows how to handle the NodeChanged and NodeInserted events.
using System;
using System.IO;
using System.Xml;

public class Sample
{
  private const String filename = "book.xml";

  public static void Main()
  {
     Sample mySample = new Sample();
     mySample.Run(filename);
  }

  public void Run(String args)
  {
     
     // Create and load the XML document.
     Console.WriteLine ("Loading file {0} ...", args);
     XmlDocument doc = new XmlDocument();
     doc.Load (args);

     //Create the event handlers.
     doc.NodeChanged += new XmlNodeChangedEventHandler(this.MyNodeChangedEvent);
     doc.NodeInserted += new XmlNodeChangedEventHandler(this.MyNodeInsertedEvent);

     // Change the book price.
     doc.DocumentElement.LastChild.InnerText = "5.95";

     // Add a new element.
     XmlElement newElem = doc.CreateElement("style");
     newElem.InnerText = "hardcover";
     doc.DocumentElement.AppendChild(newElem);

     Console.WriteLine("\r\nDisplay the modified XML...");
     Console.WriteLine(doc.OuterXml);           

  }

  // Handle the NodeChanged event.
  public void MyNodeChangedEvent(Object src, XmlNodeChangedEventArgs args)
  {
     Console.Write("Node Changed Event: <{0}> changed", args.Node.Name);
     if (args.Node.Value != null)
     {
        Console.WriteLine(" with value  {0}", args.Node.Value);
     }
     else
       Console.WriteLine("");
  }

  // Handle the NodeInserted event.
  public void MyNodeInsertedEvent(Object src, XmlNodeChangedEventArgs args)
  {
     Console.Write("Node Inserted Event: <{0}> inserted", args.Node.Name);
     if (args.Node.Value != null)
     {
        Console.WriteLine(" with value {0}", args.Node.Value);
     }
     else
        Console.WriteLine("");
  }

} // End class 

    
The example uses the file, book.xml, as input.
<!--sample XML fragment-->
<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
  <title>The Handmaid's Tale</title>
  <price>14.95</price>
</book>

    
See also:
System.Xml Namespace

Hierarchy:

Top of page

Copyright (c) 2002 Microsoft Corporation. All rights reserved.