使用 Aspose,如何在 inserthtml 之后获取 table 节点?
With Aspose, how to get a table node after inserthtml?
我正在使用 Aspose 库来格式化 Word 文档。
在 DocumentBuilder.InsertHtml()
的书签处插入 html table 后,我想 检索此 table[= 的 Aspose 节点19=].
但是当遍历书签周围的节点时我找不到 table,即使文档中 table 的总数正确递增。还有其他方法吗?
您可以通过实施 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");
而实现INodeChangingCallback接口的class 'HandleNodeChanging'定义如下:
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 工作,担任开发人员传播者。
我正在使用 Aspose 库来格式化 Word 文档。
在 DocumentBuilder.InsertHtml()
的书签处插入 html table 后,我想 检索此 table[= 的 Aspose 节点19=].
但是当遍历书签周围的节点时我找不到 table,即使文档中 table 的总数正确递增。还有其他方法吗?
您可以通过实施 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");
而实现INodeChangingCallback接口的class 'HandleNodeChanging'定义如下:
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 工作,担任开发人员传播者。