Aspose::Words::NodeType enum

NodeType enum

Specifies the type of a Word document node.

enum class NodeType

Values

NameValueDescription
Any0Indicates all node types. Allows to select all children.
Document1A Document object that, as the root of the document tree, provides access to the entire Word document. A Document node can have Section nodes.
Section2A Section object that corresponds to one section in a Word document. A Section node can have Body and HeaderFooter nodes.
Body3A Body object that contains the main text of a section (main text story). A Body node can have Paragraph and Table nodes.
HeaderFooter4A HeaderFooter object that contains text of a particular header or footer inside a section. A HeaderFooter node can have Paragraph and Table nodes.
Table5A Table object that represents a table in a Word document. A Table node can have Row nodes.
Row6A row of a table. A Row node can have Cell nodes.
Cell7A cell of a table row. A Cell node can have Paragraph and Table nodes.
Paragraph8A paragraph of text. A Paragraph node is a container for inline level elements Run, FieldStart, FieldSeparator, FieldEnd, FormField, Shape, GroupShape, Footnote, Comment, SpecialChar, as well as BookmarkStart and BookmarkEnd.
BookmarkStart9A beginning of a bookmark marker.
BookmarkEnd10An end of a bookmark marker.
EditableRangeStart11A beginning of an editable range.
EditableRangeEnd12An end of an editable range.
MoveFromRangeStart13A beginning of an MoveFrom range.
MoveFromRangeEnd14An end of an MoveFrom range.
MoveToRangeStart15A beginning of an MoveTo range.
MoveToRangeEnd16An end of an MoveTo range.
GroupShape17A group of shapes, images, OLE objects or other group shapes. A GroupShape node can contain other Shape and GroupShape nodes.
Shape18A drawing object, such as an OfficeArt shape, image or an OLE object. A Shape node can contain Paragraph and Table nodes.
Comment19A comment in a Word document. A Comment node can have Paragraph and Table nodes.
Footnote20A footnote or endnote in a Word document. A Footnote node can have Paragraph and Table nodes.
Run21A run of text.
FieldStart22A special character that designates the start of a Word field.
FieldSeparator23A special character that separates the field code from the field result.
FieldEnd24A special character that designates the end of a Word field.
FormField25A form field.
SpecialChar26A special character that is not one of the more specific special character types.
SmartTag27A smart tag around one or more inline structures (runs, images, fields,etc.) within a paragraph.
StructuredDocumentTag28Allows to define customer-specific information and its means of presentation.
StructuredDocumentTagRangeStart29A start of ranged structured document tag which accepts multi-sections content.
StructuredDocumentTagRangeEnd30A end of ranged structured document tag which accepts multi-sections content.
GlossaryDocument31A glossary document within the main document.
BuildingBlock32A building block within a glossary document (e.g. glossary document entry).
CommentRangeStart33A marker node that represents the start of a commented range.
CommentRangeEnd34A marker node that represents the end of a commented range.
OfficeMath35An Office Math object. Can be equation, function, matrix or one of other mathematical objects. Can be a collection of mathematical object and also can contain some non-mathematical objects such as runs of text.
SubDocument36A subdocument node which is a link to another document.
System37Reserved for internal use by Aspose.Words.
Null38Reserved for internal use by Aspose.Words.

Examples

Shows how to traverse through a composite node’s collection of child nodes.

auto doc = MakeObject<Document>();

// Add two runs and one shape as child nodes to the first paragraph of this document.
auto paragraph = System::ExplicitCast<Paragraph>(doc->GetChild(NodeType::Paragraph, 0, true));
paragraph->AppendChild(MakeObject<Run>(doc, u"Hello world! "));

auto shape = MakeObject<Shape>(doc, ShapeType::Rectangle);
shape->set_Width(200);
shape->set_Height(200);
// Note that the 'CustomNodeId' is not saved to an output file and exists only during the node lifetime.
shape->set_CustomNodeId(100);
shape->set_WrapType(WrapType::Inline);
paragraph->AppendChild(shape);

paragraph->AppendChild(MakeObject<Run>(doc, u"Hello again!"));

// Iterate through the paragraph's collection of immediate children,
// and print any runs or shapes that we find within.
SharedPtr<NodeCollection> children = paragraph->GetChildNodes(Aspose::Words::NodeType::Any, false);

ASSERT_EQ(3, paragraph->GetChildNodes(Aspose::Words::NodeType::Any, false)->get_Count());

for (const auto& child : System::IterateOver(children))
{
    switch (child->get_NodeType())
    {
    case NodeType::Run:
        std::cout << "Run contents:" << std::endl;
        std::cout << "\t\"" << child->GetText().Trim() << "\"" << std::endl;
        break;

    case NodeType::Shape: {
        auto childShape = System::ExplicitCast<Shape>(child);
        std::cout << "Shape:" << std::endl;
        std::cout << 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;
    }
}

See Also