Перечисление Aspose::Words::NodeType

NodeType enum

Указывает тип узла документа Word.

enum class NodeType

Значения

ИмяЗначениеОписание
Any0Указывает все типы узлов. Позволяет выбрать всех дочерних элементов.
Document1Объект Document, который в качестве корня дерева документа предоставляет доступ ко всему документу Word. Узел Document может иметь узлы Section.
Section2Объект Section, который соответствует одному разделу в документе Word. Узел Section может иметь узлы Body и HeaderFooter.
Body3Объект Body, содержащий основной текст раздела (основная текстовая история). Узел Body может иметь узлы Paragraph и Table.
HeaderFooter4Объект HeaderFooter, содержащий текст конкретного верхнего или нижнего колонтитула внутри раздела. Узел HeaderFooter может иметь узлы Paragraph и Table.
Table5Объект Table, представляющий таблицу в документе Word. Узел Table может иметь узлы Row.
Row6Строка таблицы. Узел Row может иметь узлы Cell.
Cell7Ячейка строки таблицы. Узел Cell может иметь узлы Paragraph и Table.
Paragraph8Абзац текста. Узел Paragraph является контейнером для встроенных элементов уровня строки: Run, FieldStart, FieldSeparator, FieldEnd, FormField, Shape, GroupShape, Footnote, Comment, SpecialChar, а также BookmarkStart и BookmarkEnd.
BookmarkStart9Начало маркера закладки.
BookmarkEnd10Конец маркера закладки.
EditableRangeStart11Начало редактируемого диапазона.
EditableRangeEnd12Конец редактируемого диапазона.
MoveFromRangeStart13Начало диапазона MoveFrom.
MoveFromRangeEnd14Конец диапазона MoveFrom.
MoveToRangeStart15Начало диапазона MoveTo.
MoveToRangeEnd16Конец диапазона MoveTo.
GroupShape17Группа фигур, изображений, OLE‑объектов или других групповых фигур. Узел GroupShape может содержать другие узлы Shape и GroupShape.
Shape18Графический объект, такой как фигура OfficeArt, изображение или OLE‑объект. Узел Shape может содержать узлы Paragraph и Table.
Comment19Комментарий в документе Word. Узел Comment может иметь узлы Paragraph и Table.
Footnote20Сноска или концевой сноска в документе Word. Узел Footnote может иметь узлы Paragraph и Table.
Run21Последовательность текста.
FieldStart22Специальный символ, обозначающий начало поля Word.
FieldSeparator23Специальный символ, разделяющий код поля и результат поля.
FieldEnd24Специальный символ, обозначающий конец поля Word.
FormField25Поле формы.
SpecialChar26Специальный символ, который не относится к более конкретным типам специальных символов.
SmartTag27Умный тег, охватывающий одну или несколько встроенных структур (последовательности, изображения, поля и т.д.) внутри абзаца.
StructuredDocumentTag28Позволяет определить специфическую для клиента информацию и способы её представления.
StructuredDocumentTagRangeStart29Начало ranged структурного тега документа, который принимает контент из нескольких разделов.
StructuredDocumentTagRangeEnd30Конец ranged структурного тега документа, который принимает контент из нескольких разделов.
GlossaryDocument31Глоссарийный документ внутри основного документа.
BuildingBlock32Строительный блок внутри глоссарийного документа (например, запись глоссарийного документа).
CommentRangeStart33Маркерный узел, представляющий начало комментируемого диапазона.
CommentRangeEnd34Маркерный узел, представляющий конец комментируемого диапазона.
OfficeMath35Объект Office Math. Может быть уравнением, функцией, матрицей или одним из других математических объектов. Может быть коллекцией математических объектов и также может содержать некоторые нематематические объекты, такие как фрагменты текста.
SubDocument36Узел поддокумента, который является ссылкой на другой документ.
System37Зарезервировано для внутреннего использования Aspose.Words.
Null38Зарезервировано для внутреннего использования Aspose.Words.

Примеры

Показывает, как пройтись по коллекции дочерних узлов составного узла.

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;
    }
}

См. также