다음을 통해 공유


XmlNodeChangedEventHandler 대리자

NodeChanged , NodeChanging , NodeInserted , NodeInserting , NodeRemovedNodeRemoving 이벤트를 처리하는 메서드를 나타냅니다.

네임스페이스: System.Xml
어셈블리: System.Xml(system.xml.dll)

구문

‘선언
Public Delegate Sub XmlNodeChangedEventHandler ( _
    sender As Object, _
    e As XmlNodeChangedEventArgs _
)
‘사용 방법
Dim instance As New XmlNodeChangedEventHandler(AddressOf HandlerMethod)
public delegate void XmlNodeChangedEventHandler (
    Object sender,
    XmlNodeChangedEventArgs e
)
public delegate void XmlNodeChangedEventHandler (
    Object^ sender, 
    XmlNodeChangedEventArgs^ e
)
/** @delegate */
public delegate void XmlNodeChangedEventHandler (
    Object sender, 
    XmlNodeChangedEventArgs e
)
JScript에서는 대리자를 사용할 수 있지만 새로 선언할 수는 없습니다.

매개 변수

  • sender
    이벤트 소스입니다.

설명

XmlNodeChangedEventHandler 대리자를 만드는 경우 이벤트를 처리할 메서드를 결정합니다. 이벤트를 이벤트 처리기와 연결하려면 대리자의 인스턴스를 해당 이벤트에 추가합니다. 대리자를 제거하지 않는 경우 이벤트가 발생할 때마다 이벤트 처리기가 호출됩니다. 이벤트 처리기 대리자에 대한 자세한 내용은 이벤트 및 대리자를 참조하십시오.

예제

다음 예제에서는 NodeChangedNodeInserted 이벤트를 처리하는 방법을 보여 줍니다.

Imports System
Imports System.IO
Imports System.Xml

Namespace Microsoft.Samples.Xml

    Public Class Sample

        Private Const filename As String = "book.xml"

        Public Shared Sub Main()

            Dim mySample As Sample = New Sample()
            mySample.Run(filename)
        End Sub

        Public Sub Run(ByVal args As String)

            ' Create and load the XML document.
            Console.WriteLine("Loading file {0} ...", args)
            Dim doc As XmlDocument = New XmlDocument()
            doc.Load(args)

            'Create the event handlers.
            AddHandler doc.NodeChanged, AddressOf MyNodeChangedEvent
            AddHandler doc.NodeInserted, AddressOf MyNodeInsertedEvent

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

            ' Add a new element.
            Dim newElem As XmlElement = doc.CreateElement("style")
            newElem.InnerText = "hardcover"
            doc.DocumentElement.AppendChild(newElem)

            Console.WriteLine()
            Console.WriteLine("Display the modified XML...")
            Console.WriteLine(doc.OuterXml)

        End Sub

        ' Handle the NodeChanged event.
        Private Sub MyNodeChangedEvent(ByVal source As Object, ByVal args As XmlNodeChangedEventArgs)
            Console.Write("Node Changed Event: <{0}> changed", args.Node.Name)
            If Not (args.Node.Value Is Nothing) Then
                Console.WriteLine(" with value  {0}", args.Node.Value)
            Else
                Console.WriteLine("")
            End If
        End Sub

        ' Handle the NodeInserted event.
        Private Sub MyNodeInsertedEvent(ByVal source As Object, ByVal args As XmlNodeChangedEventArgs)
            Console.Write("Node Inserted Event: <{0}> inserted", args.Node.Name)
            If Not (args.Node.Value Is Nothing) Then
                Console.WriteLine(" with value {0}", args.Node.Value)
            Else
                Console.WriteLine("")
            End If
        End Sub

    End Class

End Namespace
using System;
using System.IO;
using System.Xml;

namespace Microsoft.Samples.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.
        private void MyNodeChangedEvent(Object source, 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.
        private void MyNodeInsertedEvent(Object source, 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 
#using <System.Xml.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
public ref class Sample
{
public:
   void Run( String^ args )
   {
      // Create and load the XML document.
      Console::WriteLine( "Loading file {0} ...", args );
      XmlDocument^ doc = gcnew XmlDocument;
      doc->Load( args );
      
      //Create the event handlers.
      doc->NodeChanged += gcnew XmlNodeChangedEventHandler( this, &Sample::MyNodeChangedEvent );
      doc->NodeInserted += gcnew XmlNodeChangedEventHandler( this, &Sample::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.
private:
   void MyNodeChangedEvent( Object^ /*src*/, XmlNodeChangedEventArgs^ args )
   {
      Console::Write( "Node Changed Event: <{0}> changed", args->Node->Name );
      if ( args->Node->Value != nullptr )
      {
         Console::WriteLine( " with value  {0}", args->Node->Value );
      }
      else
            Console::WriteLine( "" );
   }

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

int main()
{
   Sample^ mySample = gcnew Sample;
   mySample->Run( "book.xml" );
}
import System.*;
import System.IO.*;
import System.Xml.*;

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

    public static void main(String[] args)
    {
        Sample mySample = new Sample();
        mySample.Run(filename);
    } //main

    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.add_NodeChanged(new XmlNodeChangedEventHandler(this.
            MyNodeChangedEvent));
        doc.add_NodeInserted(new XmlNodeChangedEventHandler(this.
            MyNodeInsertedEvent));
        // Change the book price.
        doc.get_DocumentElement().get_LastChild().set_InnerText("5.95");
        // Add a new element.
        XmlElement newElem = doc.CreateElement("style");
        newElem.set_InnerText("hardcover");
        doc.get_DocumentElement().AppendChild(newElem);

        Console.WriteLine("\r\nDisplay the modified XML...");
        Console.WriteLine(doc.get_OuterXml());
    } //Run

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

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

예제에서는 book.xml 파일을 입력으로 사용합니다.

<!--sample XML fragment-->
<book genre='novel' ISBN='1-861003-78' misc='sale-item'>
  <title>The Handmaid's Tale</title>
  <price>14.95</price>
</book>

플랫폼

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

버전 정보

.NET Framework

2.0, 1.1, 1.0에서 지원

.NET Compact Framework

2.0, 1.0에서 지원

참고 항목

참조

System.Xml 네임스페이스