Story

Story class

包含块级节点的元素的基类ParagraphTable.

public abstract class Story : CompositeNode

特性

姓名 描述
ChildNodes { get; } 获取该节点的所有直接子节点。
Count { get; } 获取此节点的直接子节点数。
CustomNodeId { get; set; } 指定自定义节点标识符。
virtual Document { get; } 获取该节点所属的文档。
FirstChild { get; } 获取节点的第一个子节点。
FirstParagraph { get; } 获取故事的第一段。
HasChildNodes { get; } 如果此节点有任何子节点,则返回 true。
override IsComposite { get; } 返回真,因为该节点可以有子节点。
LastChild { get; } 获取节点的最后一个子节点。
LastParagraph { get; } 获取故事的最后一段。
NextSibling { get; } 获取紧跟此节点的节点。
abstract NodeType { get; } 获取此节点的类型。
Paragraphs { get; } 获取作为故事直接子级的段落集合。
ParentNode { get; } 获取此节点的直接父节点。
PreviousSibling { get; } 获取紧接在此节点之前的节点。
Range { get; } 返回一个 范围表示此节点中包含的文档部分的对象。
StoryType { get; } 获取这个故事的类型。
Tables { get; } 获取作为故事直接子级的表的集合。

方法

姓名 描述
abstract Accept(DocumentVisitor) 接受访客。
AppendChild(Node) 将指定节点添加到该节点的子节点列表的末尾。
AppendParagraph(string) 创建一个快捷方式Paragraph带有可选文本的对象并将其附加到此对象的末尾。
Clone(bool) 创建节点的副本。
CreateNavigator() 保留供系统使用。 IXPathNavigable.
DeleteShapes() 从这个故事的文本中删除所有形状。
GetAncestor(NodeType) 获取指定的第一个祖先NodeType.
GetAncestor(Type) 获取指定对象类型的第一个祖先。
GetChild(NodeType, int, bool) 返回与指定类型匹配的第 N 个子节点。
GetChildNodes(NodeType, bool) 返回与指定类型匹配的子节点的实时集合。
GetEnumerator() 为在该节点的子节点上的每个样式迭代提供支持。
override GetText() 获取该节点及其所有子节点的文本。
IndexOf(Node) 返回子节点数组中指定子节点的索引。
InsertAfter(Node, Node) 在指定参考节点之后立即插入指定节点。
InsertBefore(Node, Node) 在指定的参考节点之前插入指定的节点。
NextPreOrder(Node) 根据前序树遍历算法获取下一个节点。
PrependChild(Node) 将指定节点添加到此节点的子节点列表的开头。
PreviousPreOrder(Node) 根据前序树遍历算法获取上一个节点。
Remove() 从父级中移除自身。
RemoveAllChildren() 移除当前节点的所有子节点。
RemoveChild(Node) 移除指定的子节点。
RemoveSmartTags() 删除所有SmartTag当前节点的后代节点。
SelectNodes(string) 选择与 XPath 表达式匹配的节点列表。
SelectSingleNode(string) 选择与 XPath 表达式匹配的第一个节点。
ToString(SaveFormat) 将节点的内容导出为指定格式的字符串。
ToString(SaveOptions) 使用指定的保存选项将节点的内容导出为字符串。

评论

据说一个Word文档的文本由几个故事组成。 正文存储在正文故事中,由Body, 每个页眉和页脚都存储在一个单独的故事中,由HeaderFooter.

例子

显示如何从节点中删除所有形状。

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// 使用 DocumentBuilder 插入一个形状。这是一个内联形状,
// 其中有一个父Paragraph,它是第一节Body的子节点。
builder.InsertShape(ShapeType.Cube, 100.0, 100.0);

Assert.AreEqual(1, doc.GetChildNodes(NodeType.Shape, true).Count);

// 我们可以从这个 Body 的子段落中删除所有的形状。
Assert.AreEqual(StoryType.MainText, doc.FirstSection.Body.StoryType);
doc.FirstSection.Body.DeleteShapes();

Assert.AreEqual(0, doc.GetChildNodes(NodeType.Shape, true).Count);

也可以看看