GlossaryDocument

GlossaryDocument class

表示 Word 文档中术语表文档的根元素。 术语表文档是自动图文集、自动更正条目和构建块的存储。

要了解更多信息,请访问Aspose.Words 文档对象模型 (DOM)文档文章。

public class GlossaryDocument : DocumentBase

构造函数

姓名描述
GlossaryDocument()默认构造函数。

特性

姓名描述
BackgroundShape { get; set; }获取或设置文档的背景形状。可无效的.
BuildingBlocks { get; }返回一个类型化集合,表示术语表文档中的所有构建块。
Count { get; }获取此节点的直接子节点的数量。
CustomNodeId { get; set; }指定自定义节点标识符。
override Document { get; }获取此实例。
FirstBuildingBlock { get; }获取词汇表文档中的第一个构建块。
FirstChild { get; }获取节点的第一个子节点。
FontInfos { get; }提供对本文档中使用的字体属性的访问。
HasChildNodes { get; }返回真的如果该节点有任何子节点.
override IsComposite { get; }返回真的因为该节点可以有子节点。
LastBuildingBlock { get; }获取术语表文档中的最后一个构建块。
LastChild { get; }获取节点的最后一个子节点。
Lists { get; }提供对文档中使用的列表格式的访问。
NextSibling { get; }获取紧随该节点的下一个节点。
NodeChangingCallback { get; set; }在文档中插入或删除节点时调用。
override NodeType { get; }返回GlossaryDocument值.
PageColor { get; set; }获取或设置文档的页面颜色。这个属性是一个更简单的版本BackgroundShape.
ParentNode { get; }获取此节点的直接父节点。
PreviousSibling { get; }获取紧邻此节点之前的节点。
Range { get; }返回一个Range表示此节点中包含的文档部分的对象。
ResourceLoadingCallback { get; set; }允许控制如何加载外部资源。
Styles { get; }返回文档中定义的样式集合。
WarningCallback { get; set; }在检测到可能导致 数据或格式保真度损失的问题时在各种文档处理过程中调用。

方法

姓名描述
override Accept(DocumentVisitor)接受访客。
AppendChild(Node)将指定节点添加到该节点的子节点列表的末尾。
Clone(bool)创建节点的副本。
CreateNavigator()创建可用于遍历和读取节点的导航器。
GetAncestor(NodeType)获取指定的第一个祖先NodeType.
GetAncestor(Type)获取指定对象类型的第一个祖先。
GetBuildingBlock(BuildingBlockGallery, string, string)使用指定的图库、类别和名称查找构建块。
GetChild(NodeType, int, bool)返回与指定类型匹配的第 N 个子节点。
GetChildNodes(NodeType, bool)返回与指定类型匹配的子节点的实时集合。
GetEnumerator()为该节点的子节点上的每个样式迭代提供支持。
override GetText()获取此节点及其所有子节点的文本。
ImportNode(Node, bool)将节点从另一个文档导入到当前文档。
ImportNode(Node, bool, ImportFormatMode)将节点从另一个文档导入到当前文档,并提供控制格式的选项。
IndexOf(Node)返回子节点数组中指定子节点的索引。
InsertAfter(NodeNode)在指定的引用节点之后立即插入指定的节点。
InsertBefore(NodeNode)在指定的引用节点之前插入指定的节点。
NextPreOrder(Node)根据先序树遍历算法获取下一个节点。
PrependChild(Node)将指定节点添加到该节点的子节点列表的开头。
PreviousPreOrder(Node)根据先序树遍历算法获取前一个节点。
Remove()将自身从父级中删除。
RemoveAllChildren()删除当前节点的所有子节点。
RemoveChild(Node)删除指定的子节点。
RemoveSmartTags()删除所有SmartTag当前节点的后代节点.
SelectNodes(string)选择与 XPath 表达式匹配的节点列表。
SelectSingleNode(string)选择第一个Node与 XPath 表达式匹配。
ToString(SaveFormat)将节点的内容导出为指定格式的字符串。
ToString(SaveOptions)使用指定的保存选项将节点的内容导出到字符串中。

评论

某些文档(通常是模板)可以包含自动图文集、自动更正条目 和/或构建块(也称为术语表文档条目,文件部分 或建筑模块)。

要访问构建块,您需要将文档加载到Document 对象。构建块将通过GlossaryDocument财产。

GlossaryDocument可以包含任意数量的BuildingBlock对象. 每个BuildingBlock代表一个文档部分。

对应于术语表文档文档部分OOXML 中的元素。

例子

显示访问术语表文档中的构建块的方法。

public void GlossaryDocument()
{
    Document doc = new Document();
    GlossaryDocument glossaryDoc = new GlossaryDocument();

    glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 1" });
    glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 2" });
    glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 3" });
    glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 4" });
    glossaryDoc.AppendChild(new BuildingBlock(glossaryDoc) { Name = "Block 5" });

    Assert.AreEqual(5, glossaryDoc.BuildingBlocks.Count);

    doc.GlossaryDocument = glossaryDoc;

    // 访问构建块的方式有多种。
    // 1 - 获取集合中的第一个/最后一个构建块:
    Assert.AreEqual("Block 1", glossaryDoc.FirstBuildingBlock.Name);
    Assert.AreEqual("Block 5", glossaryDoc.LastBuildingBlock.Name);

    // 2 - 通过索引获取构建块:
    Assert.AreEqual("Block 2", glossaryDoc.BuildingBlocks[1].Name);
    Assert.AreEqual("Block 3", glossaryDoc.BuildingBlocks.ToArray()[2].Name);

    // 3 - 获取与画廊、名称和类别匹配的第一个构建块:
    Assert.AreEqual("Block 4", 
        glossaryDoc.GetBuildingBlock(BuildingBlockGallery.All, "(Empty Category)", "Block 4").Name);

    // 我们将使用自定义访问者来做到这一点,
    // 这将为 GlossaryDocument 中的每个 BuildingBlock 提供唯一的 GUID
    GlossaryDocVisitor visitor = new GlossaryDocVisitor();
    glossaryDoc.Accept(visitor);
    Console.WriteLine(visitor.GetText());

    // 在 Microsoft Word 中,我们可以通过“插入”-> 来访问构建块“快速零件”-> “积木组织者”。
    doc.Save(ArtifactsDir + "BuildingBlocks.GlossaryDocument.dotx"); 
}

/// <summary>
/// 为访问的术语表文档中的每个构建块提供唯一的 GUID。
/// 将 GUID 构建块对存储在字典中。
/// </summary>
public class GlossaryDocVisitor : DocumentVisitor
{
    public GlossaryDocVisitor()
    {
        mBlocksByGuid = new Dictionary<Guid, BuildingBlock>();
        mBuilder = new StringBuilder();
    }

    public string GetText()
    {
        return mBuilder.ToString();
    }

    public Dictionary<Guid, BuildingBlock> GetDictionary()
    {
        return mBlocksByGuid;
    }

    public override VisitorAction VisitGlossaryDocumentStart(GlossaryDocument glossary)
    {
        mBuilder.AppendLine("Glossary document found!");
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitGlossaryDocumentEnd(GlossaryDocument glossary)
    {
        mBuilder.AppendLine("Reached end of glossary!");
        mBuilder.AppendLine("BuildingBlocks found: " + mBlocksByGuid.Count);
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
    {
        block.Guid = Guid.NewGuid();
        mBlocksByGuid.Add(block.Guid, block);
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitBuildingBlockEnd(BuildingBlock block)
    {
        mBuilder.AppendLine("\tVisited block \"" + block.Name + "\"");
        mBuilder.AppendLine("\t Type: " + block.Type);
        mBuilder.AppendLine("\t Gallery: " + block.Gallery);
        mBuilder.AppendLine("\t Behavior: " + block.Behavior);
        mBuilder.AppendLine("\t Description: " + block.Description);

        return VisitorAction.Continue;
    }

    private readonly Dictionary<Guid, BuildingBlock> mBlocksByGuid;
    private readonly StringBuilder mBuilder;
}

也可以看看