CompositeNode
Содержание
[
Скрывать
]CompositeNode class
Базовый класс для узлов, которые могут содержать другие узлы.
Чтобы узнать больше, посетитеОбъектная модель документа Aspose.Words (DOM) статья документации.
public abstract class CompositeNode : Node, IEnumerable<Node>, IXPathNavigable
Характеристики
Имя | Описание |
---|---|
Count { get; } | Получает количество непосредственных дочерних элементов этого узла. |
CustomNodeId { get; set; } | Указывает пользовательский идентификатор узла. |
virtual Document { get; } | Получает документ, которому принадлежит этот узел. |
FirstChild { get; } | Получает первого дочернего элемента узла. |
HasChildNodes { get; } | Возвращаетистинный если у этого узла есть дочерние узлы. |
override IsComposite { get; } | Возвращаетистинный поскольку этот узел может иметь дочерние узлы. |
LastChild { get; } | Получает последнего дочернего узла узла. |
NextSibling { get; } | Получает узел, следующий сразу за этим узлом. |
abstract NodeType { get; } | Получает тип этого узла. |
ParentNode { get; } | Получает непосредственного родителя этого узла. |
PreviousSibling { get; } | Получает узел, непосредственно предшествующий этому узлу. |
Range { get; } | ВозвращаетRange объект, представляющий часть документа, содержащуюся в этом узле. |
Методы
Имя | Описание |
---|---|
abstract Accept(DocumentVisitor) | Принимает посетителя. |
AppendChild(Node) | Добавляет указанный узел в конец списка дочерних узлов для этого узла. |
Clone(bool) | Создает дубликат узла. |
CreateNavigator() | Создает навигатор, который можно использовать для перемещения и чтения узлов. |
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) | Выбирает первыйNode которое соответствует выражению XPath. |
ToString(SaveFormat) | Экспортирует содержимое узла в строку указанного формата. |
ToString(SaveOptions) | Экспортирует содержимое узла в строку, используя указанные параметры сохранения. |
Примечания
Документ представлен в виде дерева узлов, аналогично DOM или XmlDocument.
Дополнительную информацию см. в разделе «Композитный шаблон проектирования».
CompositeNode
сорт:
- Предоставляет доступ к дочерним узлам.
- Реализует составные операции, такие как вставка и удаление дочерних элементов.
- Предоставляет методы для навигации XPath.
Примеры
Показывает, как перемещаться по коллекции дочерних узлов составного узла.
Document doc = new Document();
// Добавьте два прогона и одну фигуру в качестве дочерних узлов в первый абзац этого документа.
Paragraph paragraph = (Paragraph)doc.GetChild(NodeType.Paragraph, 0, true);
paragraph.AppendChild(new Run(doc, "Hello world! "));
Shape shape = new Shape(doc, ShapeType.Rectangle);
shape.Width = 200;
shape.Height = 200;
// Обратите внимание, что CustomNodeId не сохраняется в выходном файле и существует только во время существования узла.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);
paragraph.AppendChild(new Run(doc, "Hello again!"));
// Перебираем коллекцию непосредственных дочерних элементов абзаца,
// и распечатываем любые фрагменты или фигуры, которые мы находим внутри.
NodeCollection children = paragraph.GetChildNodes(NodeType.Any, false);
Assert.AreEqual(3, paragraph.GetChildNodes(NodeType.Any, false).Count);
foreach (Node child in children)
switch (child.NodeType)
{
case NodeType.Run:
Console.WriteLine("Run contents:");
Console.WriteLine($"\t\"{child.GetText().Trim()}\"");
break;
case NodeType.Shape:
Shape childShape = (Shape)child;
Console.WriteLine("Shape:");
Console.WriteLine($"\t{childShape.ShapeType}, {childShape.Width}x{childShape.Height}");
break;
}
Смотрите также
- class Node
- пространство имен Aspose.Words
- сборка Aspose.Words