繁体   English   中英

如何确定Aspose.Words书签是否包含嵌套书签

[英]How to determine if Aspose.Words bookmark contains nested bookmarks

我正在使用以下代码遍历Microsoft Word文档中的所有书签:

foreach (var bookmark in _document.Range.Bookmarks.Cast<Bookmark>())
{
    //code
}

如何确定bookmark包含嵌套书签? 我需要根据书签中是否包含其他书签来执行一组单独的逻辑。

上面的foreach循环将获取Bookmark的所有实例。 获取嵌套书签有点棘手,因为Aspose.Words中没有直接的API可以做到这一点。

我已经编写了一个程序来执行此操作,源代码不是很小,所以我在这里在Google云端硬盘上共享Visual Studio项目。

以下是摘要

foreach (var bookmark in wordDoc.Range.Bookmarks.Cast<Aspose.Words.Bookmark>())
{
    Console.WriteLine(bookmark.Name);
    // Get all the nodes between bookmark start and end
    ArrayList extractedNodes = ExtractContent(bookmark.BookmarkStart, bookmark.BookmarkEnd, true);
    for (int i = 0; i < extractedNodes.Count; i++)
    {
        // Skip first and last nodes
        if (i == 0 || i == extractedNodes.Count - 1)
            continue;

        // See if there is any bookmarks in this node
        Node node = (Node)extractedNodes[i];
        if (node.Range.Bookmarks.Count > 0)
            Console.WriteLine("Nested bookmark found");
    }
}

有关ExtractContent()方法的详细信息,请访问http://www.aspose.com/docs/display/wordsnet/Extract+Content+Overview+and+Code

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM