Вы можете удовлетворить это требование, используя Интерфейс INodeChangingCallback. Вот пример кода:
Document doc = new Document(MyDir + @"input.docx");
DocumentBuilder builder = new DocumentBuilder(doc);
builder.MoveToBookmark("tbl");
HandleNodeChanging handler = new HandleNodeChanging();
doc.NodeChangingCallback = handler;
builder.InsertHtml("<table border='1'><tr><td>1</td><td>2</td><td>3</td></tr><tr><td>4</td><td>5</td><td>6</td></tr></table>");
foreach (Table table in handler.InsertedTables)
{
// Your logic here
}
doc.Save(MyDir + @"15.9.0.docx");
И определение класса 'HandleNodeChanging', который реализует интерфейс INodeChangingCallback выглядит следующим образом:
public class HandleNodeChanging : INodeChangingCallback
{
void INodeChangingCallback.NodeInserted(NodeChangingArgs args)
{
if (args.Node.NodeType == NodeType.Table)
mInsertedTables.Add(args.Node);
}
void INodeChangingCallback.NodeInserting(NodeChangingArgs args)
{
// Do Nothing
}
void INodeChangingCallback.NodeRemoved(NodeChangingArgs args)
{
// Do Nothing
}
void INodeChangingCallback.NodeRemoving(NodeChangingArgs args)
{
// Do Nothing
}
public List<Node> InsertedTables
{
get { return mInsertedTables; }
}
private readonly List<Node> mInsertedTables = new List<Node>();
}
Надежда, это помогает.
Я работаю с Aspose как Developer Evangelist.
Спасибо! Я мог бы получить вставленные узлы этим методом. –