.net 使用Aspose,如何在inserthtml之后获取表节点?
我正在使用Aspose库格式化Word文档 使用.net 使用Aspose,如何在inserthtml之后获取表节点?,.net,ms-word,aspose,.net,Ms Word,Aspose,我正在使用Aspose库格式化Word文档 使用DocumentBuilder.InsertHtml()在书签处插入html表后,我想检索此表的Aspose节点 但是当遍历书签周围的节点时,我找不到表,即使文档中的表总数正确地增加了。还有其他方法吗?您可以通过实现INodeChangingCallback接口来满足此要求。下面是代码示例: Document doc = new Document(MyDir + @"input.docx"); DocumentBuilder builder = n
DocumentBuilder.InsertHtml()
在书签处插入html表后,我想检索此表的Aspose节点
但是当遍历书签周围的节点时,我找不到表,即使文档中的表总数正确地增加了。还有其他方法吗?您可以通过实现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");
documentdoc=新文档(MyDir+@“input.docx”);
DocumentBuilder=新的DocumentBuilder(文档);
建筑商。移动图书(“tbl”);
HandleNodeChanging handler=new HandleNodeChanging();
doc.NodeChangingCallback=处理程序;
建筑商插入TML(“123456”);
foreach(handler.InsertedTables中的表)
{
//你的逻辑在这里
}
文件保存(MyDir+@“15.9.0.docx”);
实现INodeChangingCallback接口的类“handleNodeChangeing”的定义如下:
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>();
}
public类HandleNodeChanging:INodeChangingCallback
{
void INodeChangingCallback.NodeInserted(NodeChangingArgs args)
{
if(args.Node.NodeType==NodeType.Table)
添加(参数节点);
}
void INodeChangingCallback.NodeInserting(NodeChangingArgs args)
{
//无所事事
}
void INodeChangingCallback.NodeRemoved(NodeChangingArgs args)
{
//无所事事
}
void INodeChangingCallback.noderremoving(NodeChangingArgs args)
{
//无所事事
}
公共列表插入表
{
获取{return mInsertedTables;}
}
私有只读列表mInsertedTables=新列表();
}
希望,这有帮助
我与Aspose合作,担任开发人员福音传道者。谢谢!我可以用这个方法检索插入的节点。