INodeChangingCallback Interface
Implement this interface if you want to receive notifications when nodes are inserted or removed in the document.

Namespace: Aspose.Words
Assembly: Aspose.Words (in Aspose.Words.dll) Version: 19.11
Syntax
public interface INodeChangingCallback

The INodeChangingCallback type exposes the following members.

Methods
  NameDescription
Public methodCode exampleNodeInserted
Called when a node belonging to this document has been inserted into another node.
Public methodCode exampleNodeInserting
Called just before a node belonging to this document is about to be inserted into another node.
Public methodCode exampleNodeRemoved
Called when a node belonging to this document has been removed from its parent.
Public methodCode exampleNodeRemoving
Called just before a node belonging to this document is about to be removed from the document.
Examples
Shows how to implement custom logic over node insertion in the document by changing the font of inserted HTML content.
public void TestNodeChangingInDocument()
{
    // Create a blank document object
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    // Set up and pass the object which implements the handler methods.
    doc.NodeChangingCallback = new HandleNodeChangingFontChanger();

    // Insert sample HTML content
    builder.InsertHtml("<p>Hello World</p>");

    doc.Save(ArtifactsDir + "Document.FontChanger.doc");

    // Check that the inserted content has the correct formatting
    Run run = (Run) doc.GetChild(NodeType.Run, 0, true);
    Assert.AreEqual(24.0, run.Font.Size);
    Assert.AreEqual("Arial", run.Font.Name);
}

public class HandleNodeChangingFontChanger : INodeChangingCallback
{
    // Implement the NodeInserted handler to set default font settings for every Run node inserted into the Document
    void INodeChangingCallback.NodeInserted(NodeChangingArgs args)
    {
        // Change the font of inserted text contained in the Run nodes.
        if (args.Node.NodeType == NodeType.Run)
        {
            Aspose.Words.Font font = ((Run) args.Node).Font;
            font.Size = 24;
            font.Name = "Arial";
        }
    }

    void INodeChangingCallback.NodeInserting(NodeChangingArgs args)
    {
        // Do Nothing
    }

    void INodeChangingCallback.NodeRemoved(NodeChangingArgs args)
    {
        // Do Nothing
    }

    void INodeChangingCallback.NodeRemoving(NodeChangingArgs args)
    {
        // Do Nothing
    }
}
See Also