Aspose::Words::CompositeNode class
Содержание
[
Скрывать
]CompositeNode class
Базовый класс для узлов, которые могут содержать другие узлы. Чтобы узнать больше, посетите статью документации Aspose.Words Document Object Model (DOM).
class CompositeNode : public Aspose::Words::Node,
public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::Node>>,
public Aspose::Words::INodeCollection
Методы
| Метод | Описание |
|---|---|
| virtual Accept(System::SharedPtr<Aspose::Words::DocumentVisitor>) | Принимает посетителя. |
| virtual AcceptEnd(System::SharedPtr<Aspose::Words::DocumentVisitor>) | Когда реализовано в производном классе, вызывает метод VisitXXXEnd указанного посетителя документа. |
| virtual AcceptStart(System::SharedPtr<Aspose::Words::DocumentVisitor>) | Когда реализовано в производном классе, вызывает метод VisitXXXStart указанного посетителя документа. |
| AppendChild(T) | |
| Clone(bool) | Создаёт дубликат узла. |
| get_Count() | Возвращает количество непосредственных дочерних элементов этого узла. |
| get_CustomNodeId() const | Указывает пользовательский идентификатор узла. |
| virtual get_Document() const | Возвращает документ, к которому принадлежит этот узел. |
| get_FirstChild() const | Возвращает первого дочернего узла. |
| get_HasChildNodes() | Возвращает true, если у этого узла есть дочерние узлы. |
| get_IsComposite() override | Возвращает true, поскольку этот узел может иметь дочерние узлы. |
| get_LastChild() const | Возвращает последнего дочернего узла. |
| get_NextNode() const | |
| get_NextSibling() | Возвращает узел, непосредственно следующий за этим узлом. |
| virtual get_NodeType() const | Возвращает тип этого узла. |
| get_ParentNode() | Возвращает непосредственного родителя этого узла. |
| get_PreviousSibling() | Возвращает узел, непосредственно предшествующий этому узлу. |
| get_PrevNode() const | |
| get_Range() | Возвращает объект Range, представляющий часть документа, содержащуюся в этом узле. |
| GetAncestor(Aspose::Words::NodeType) | Получает первого предка указанного NodeType. |
| GetAncestorOf() | |
| GetChild(Aspose::Words::NodeType, int32_t, bool) | Возвращает N‑й дочерний узел, соответствующий указанному типу. |
| GetChildNodes(Aspose::Words::NodeType, bool) | Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу. |
| GetEnumerator() override | Обеспечивает поддержку итерации в стиле foreach по дочерним узлам этого узла. |
| GetText() override | Получает текст этого узла и всех его дочерних узлов. |
| GetType() const override | |
| IndexOf(const System::SharedPtr<Aspose::Words::Node>&) | Возвращает индекс указанного дочернего узла в массиве дочерних узлов. |
| InsertAfter(T, const System::SharedPtr<Aspose::Words::Node>&) | |
| InsertBefore(T, const System::SharedPtr<Aspose::Words::Node>&) | |
| Is(const System::TypeInfo&) const override | |
| IsAncestorNode(const System::SharedPtr<Aspose::Words::Node>&) | |
| NextPreOrder(const System::SharedPtr<Aspose::Words::Node>&) | Получает следующий узел согласно алгоритму обхода дерева в порядке предобхода. |
| static NodeTypeToString(Aspose::Words::NodeType) | Вспомогательный метод, преобразующий значение перечисления типа узла в удобочитаемую строку. |
| PrependChild(T) | |
| PreviousPreOrder(const System::SharedPtr<Aspose::Words::Node>&) | Получает предыдущий узел согласно алгоритму обхода дерева в порядке предобхода. |
| Remove() | Удаляет себя из родительского узла. |
| RemoveAllChildren() | Удаляет все дочерние узлы текущего узла. |
| RemoveChild(T) | |
| RemoveSmartTags() | Удаляет все дочерние узлы SmartTag текущего узла. |
| SelectNodes(const System::String&) | Выбирает список узлов, соответствующих XPath-выражению. |
| SelectSingleNode(const System::String&) | Выбирает первый Node, который соответствует выражению XPath. |
| set_CustomNodeId(int32_t) | Сеттер для Aspose::Words::Node::get_CustomNodeId. |
| set_NextNode(const System::SharedPtr<Aspose::Words::Node>&) | |
| set_PrevNode(const System::SharedPtr<Aspose::Words::Node>&) | |
| SetParent(const System::SharedPtr<Aspose::Words::Node>&) | |
| SetTemplateWeakPtr(uint32_t) override | |
| ToString(Aspose::Words::SaveFormat) | Экспортирует содержимое узла в строку в указанном формате. |
| ToString(const System::SharedPtr<Aspose::Words::Saving::SaveOptions>&) | Экспортирует содержимое узла в строку, используя указанные параметры сохранения. |
| static Type() |
Примечания
Документ представляется в виде дерева узлов, похожего на DOM или XmlDocument.
Для получения дополнительной информации см. шаблон проектирования Composite.
Класс CompositeNode:
- Provides access to the child nodes.
- Implements Composite operations such as insert and remove children.
- Provides methods for XPath navigation.
Примеры
Показывает, как пройтись по коллекции дочерних узлов составного узла.
auto doc = System::MakeObject<Aspose::Words::Document>();
// Добавьте два фрагмента текста и одну фигуру в качестве дочерних узлов к первому абзацу этого документа.
auto paragraph = System::ExplicitCast<Aspose::Words::Paragraph>(doc->GetChild(Aspose::Words::NodeType::Paragraph, 0, true));
paragraph->AppendChild<System::SharedPtr<Aspose::Words::Run>>(System::MakeObject<Aspose::Words::Run>(doc, u"Hello world! "));
auto shape = System::MakeObject<Aspose::Words::Drawing::Shape>(doc, Aspose::Words::Drawing::ShapeType::Rectangle);
shape->set_Width(200);
shape->set_Height(200);
// Обратите внимание, что 'CustomNodeId' не сохраняется в выходной файл и существует только в течение жизни узла.
shape->set_CustomNodeId(100);
shape->set_WrapType(Aspose::Words::Drawing::WrapType::Inline);
paragraph->AppendChild<System::SharedPtr<Aspose::Words::Drawing::Shape>>(shape);
paragraph->AppendChild<System::SharedPtr<Aspose::Words::Run>>(System::MakeObject<Aspose::Words::Run>(doc, u"Hello again!"));
// Итерируйтесь по коллекции непосредственных дочерних элементов абзаца,
// и выводите любые фрагменты текста или фигуры, которые мы находим внутри.
System::SharedPtr<Aspose::Words::NodeCollection> children = paragraph->GetChildNodes(Aspose::Words::NodeType::Any, false);
ASSERT_EQ(3, paragraph->GetChildNodes(Aspose::Words::NodeType::Any, false)->get_Count());
for (auto&& child : System::IterateOver(children))
{
switch (child->get_NodeType())
{
case Aspose::Words::NodeType::Run:
std::cout << "Run contents:" << std::endl;
std::cout << System::String::Format(u"\t\"{0}\"", child->GetText().Trim()) << std::endl;
break;
case Aspose::Words::NodeType::Shape:
{
auto childShape = System::ExplicitCast<Aspose::Words::Drawing::Shape>(child);
std::cout << "Shape:" << std::endl;
std::cout << System::String::Format(u"\t{0}, {1}x{2}", childShape->get_ShapeType(), childShape->get_Width(), childShape->get_Height()) << std::endl;
ASSERT_EQ(100, shape->get_CustomNodeId());
break;
}
default:
break;
}
}
См. также
- Class Node
- Namespace Aspose::Words
- Library Aspose.Words for C++