CompositeNode.h
1 // Copyright 2001-2020 Aspose Pty Ltd. All Rights Reserved.
3 //
4 // This file is part of Aspose.Words. The source code in this file
5 // is only intended as a supplement to the documentation, and is provided
6 // "as is", without warranty of any kind, either expressed or implied.
9 #pragma once
10 
11 #include <xml/xpath/xpath_navigator.h>
12 #include <system/text/string_builder.h>
13 #include <system/string.h>
14 #include <system/shared_ptr.h>
15 #include <system/object.h>
16 #include <system/collections/ienumerator.h>
17 #include <system/collections/ienumerable.h>
18 #include <system/array.h>
19 #include <cstdint>
20 
21 #include "Aspose.Words.Cpp/Model/Nodes/NodeType.h"
22 #include "Aspose.Words.Cpp/Model/Nodes/Node.h"
23 #include "Aspose.Words.Cpp/Model/Nodes/INodeCollection.h"
24 #include "Aspose.Words.Cpp/aspose_words_api_defs.h"
25 
26 namespace Aspose { namespace Words { enum class VisitorAction; } }
27 namespace Aspose { namespace Words { namespace Layout { namespace Core { class LayoutShapeDrawingMLAdapter; } } } }
28 namespace Aspose { namespace Words { namespace Layout { namespace Core { class LayoutShapeVMLAdapter; } } } }
29 namespace Aspose { namespace Words { class ImportInfoCollector; } }
30 namespace Aspose { namespace Words { class NodeRemover; } }
31 namespace Aspose { namespace Words { class AnnotationUtil; } }
32 namespace Aspose { namespace Words { class StyleSeparatorInserter; } }
33 namespace Aspose { namespace Words { namespace Fields { class FieldQuoteUpdater; } } }
34 namespace Aspose { namespace Words { namespace Fields { class FieldIncludeTextUpdater; } } }
35 namespace Aspose { namespace Words { class NodeCollection; } }
36 namespace Aspose { namespace Words { namespace Layout { class ParagraphPrConverter; } } }
37 namespace Aspose { namespace Words { namespace Comparison { class ComparerNodeUtil; } } }
38 namespace Aspose { namespace Words { namespace Comparison { class ComparerIndexer; } } }
39 namespace Aspose { namespace Words { class NodeIndexer; } }
40 namespace Aspose { namespace Words { class DocumentInserter; } }
41 namespace Aspose { namespace Words { namespace Replacing { class FindReplaceIndexer; } } }
42 namespace Aspose { namespace Words { namespace Tables { class TableMerger; } } }
43 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Writer { class DocxFieldsWriter; } } } } }
44 namespace Aspose { namespace Words { namespace RW { class InlineMarkupResolver; } } }
45 namespace Aspose { namespace Words { class NodeEnumerator; } }
46 namespace Aspose { namespace Words { namespace RW { namespace Nrx { namespace Reader { class NrxRunReaderBase; } } } } }
47 namespace Aspose { namespace Words { namespace Replacing { class FindReplace; } } }
48 namespace Aspose { namespace Words { class RevisionGroup; } }
49 namespace Aspose { namespace Words { namespace Revisions { class RevisionUtil; } } }
50 namespace Aspose { namespace Words { namespace Revisions { class BookmarkDeleter; } } }
51 namespace Aspose { namespace Words { namespace Revisions { class BookmarkMover; } } }
52 namespace Aspose { namespace Words { namespace Validation { class ShapeValidator; } } }
53 namespace Aspose { namespace Words { namespace Layout { namespace Core { class WarningGenerator; } } } }
54 namespace Aspose { namespace Words { namespace Layout { namespace Core { class DocumentLayout; } } } }
55 namespace Aspose { namespace Words { namespace Fields { class FieldOldResultNodeCollection; } } }
56 namespace Aspose { namespace Words { namespace Fields { class FieldReplacer; } } }
57 namespace Aspose { namespace Words { namespace Markup { class SdtContentUpdater; } } }
58 namespace Aspose { namespace Words { namespace Tables { class FixedGridCalculator; } } }
59 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Writer { class OdtTrackedChangesWriter; } } } } }
60 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxAltChunkReader; } } } } }
61 namespace Aspose { namespace Words { namespace Fields { class FieldToc; } } }
62 namespace Aspose { namespace Words { namespace Fields { class ParagraphTocEntry; } } }
63 namespace Aspose { namespace Words { namespace Fields { class TocEntryExtractor; } } }
64 namespace Aspose { namespace Words { namespace Markup { class SdtContentHelper; } } }
65 namespace Aspose { namespace Words { namespace Markup { class StructuredDocumentTag; } } }
66 namespace Aspose { namespace Words { namespace Math { class OfficeMath; } } }
67 namespace Aspose { namespace Words { class NodeCopier; } }
68 namespace Aspose { namespace Words { class NodeTextCollector; } }
69 namespace Aspose { namespace Words { class NodeRangeVisitingHelper; } }
70 namespace Aspose { namespace Words { class NodeUtil; } }
71 namespace Aspose { namespace Words { namespace Layout { class AttributeConverter; } } }
72 namespace Aspose { namespace Words { namespace Layout { class DocumentSpanConverter; } } }
73 namespace Aspose { namespace Words { class Bookmark; } }
74 namespace Aspose { namespace Words { namespace BuildingBlocks { class BuildingBlock; } } }
75 namespace Aspose { namespace Words { class DocumentBase; } }
76 namespace Aspose { namespace Words { namespace Fields { class NodeRangeResultApplier; } } }
77 namespace Aspose { namespace Words { class FootnoteSeparator; } }
78 namespace Aspose { namespace Words { class DocumentBuilder; } }
79 namespace Aspose { namespace Words { namespace Validation { class DocumentValidator; } } }
80 namespace Aspose { namespace Words { class WordCounter; } }
81 namespace Aspose { namespace Words { namespace Drawing { class ShapeBase; } } }
82 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlCoreWriter; } } } } }
83 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Writer { class WmlEquationXmlWriter; } } } } }
84 namespace Aspose { namespace Words { namespace RW { class MarkupResolver; } } }
85 namespace Aspose { namespace Words { class InlineStory; } }
86 namespace Aspose { namespace Words { class FootnoteSeparatorCollection; } }
87 namespace Aspose { namespace Words { namespace Markup { class SmartTag; } } }
88 namespace Aspose { namespace Words { class Story; } }
89 namespace Aspose { namespace Words { class Section; } }
90 namespace Aspose { namespace Words { namespace TableLayout { class TableLayouter; } } }
91 namespace Aspose { namespace Words { namespace Tables { class Cell; } } }
92 namespace Aspose { namespace Words { namespace Tables { class Row; } } }
93 namespace Aspose { namespace Words { namespace Tables { class Table; } } }
94 namespace Aspose { namespace Words { class Paragraph; } }
95 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxDocumentReaderBase; } } } } }
96 namespace Aspose { namespace Words { namespace RW { namespace Nrx { namespace Reader { class NrxDocumentReaderBase; } } } } }
97 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Writer { class HtmlDocumentSplitter; } } } } }
98 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtTextIndexesReader; } } } } }
99 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtTableCellReader; } } } } }
100 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtTableReader; } } } } }
101 namespace Aspose { namespace Words { namespace RW { namespace Vml { class VmlShapeReader; } } } }
102 namespace Aspose { namespace Words { namespace RW { namespace Odt { namespace Reader { class OdtParagraphReader; } } } } }
103 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Reader { class WmlInlineReader; } } } } }
104 namespace Aspose { namespace Words { class WordUtil; } }
105 namespace Aspose { namespace Words { namespace RW { namespace Docx { namespace Reader { class DocxStoryReader; } } } } }
106 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Escher { class EsShapeFiler; } } } } }
107 namespace Aspose { namespace Words { namespace RW { namespace Doc { namespace Reader { class ModelBuilder; } } } } }
108 namespace Aspose { namespace Words { namespace RW { namespace Html { namespace Reader { class HtmlTableReader; } } } } }
109 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Reader { class RtfModelBuilder; } } } } }
110 namespace Aspose { namespace Words { namespace RW { namespace Rtf { namespace Writer { class RtfDocPrWriter; } } } } }
111 namespace Aspose { namespace Words { namespace RW { namespace Wml { namespace Reader { class WmlBodyReader; } } } } }
112 namespace Aspose { namespace Words { class INodeCloningListener; } }
113 namespace Aspose { namespace Words { class NodeList; } }
114 namespace Aspose { namespace Words { class DocumentVisitor; } }
115 
116 namespace Aspose {
117 
118 namespace Words {
119 
133 class CompositeNode : public Aspose::Words::Node, public System::Collections::Generic::IEnumerable<System::SharedPtr<Aspose::Words::Node>>, public Aspose::Words::INodeCollection
134 {
135  typedef CompositeNode ThisType;
138  typedef Aspose::Words::INodeCollection BaseType2;
139 
140  typedef ::System::BaseTypesInfo<BaseType, BaseType1, BaseType2> ThisTypeBaseTypesInfo;
141  ASPOSE_WORDS_SHARED_RTTI_INFO_DECL();
142 
143  FRIEND_FUNCTION_System_MakeObject;
144  friend class Aspose::Words::Layout::Core::LayoutShapeDrawingMLAdapter;
145  friend class Aspose::Words::Layout::Core::LayoutShapeVMLAdapter;
146  friend class Aspose::Words::ImportInfoCollector;
147  friend class Aspose::Words::NodeRemover;
148  friend class Aspose::Words::AnnotationUtil;
149  friend class Aspose::Words::StyleSeparatorInserter;
150  friend class Aspose::Words::Fields::FieldQuoteUpdater;
151  friend class Aspose::Words::Fields::FieldIncludeTextUpdater;
152  friend class Aspose::Words::NodeCollection;
153  friend class Aspose::Words::Layout::ParagraphPrConverter;
154  friend class Aspose::Words::Comparison::ComparerNodeUtil;
155  friend class Aspose::Words::Comparison::ComparerIndexer;
156  friend class Aspose::Words::NodeIndexer;
157  friend class Aspose::Words::DocumentInserter;
158  friend class Aspose::Words::Replacing::FindReplaceIndexer;
159  friend class Aspose::Words::Tables::TableMerger;
160  friend class Aspose::Words::RW::Docx::Writer::DocxFieldsWriter;
161  friend class Aspose::Words::RW::InlineMarkupResolver;
162  friend class Aspose::Words::NodeEnumerator;
163  friend class Aspose::Words::RW::Nrx::Reader::NrxRunReaderBase;
164  friend class Aspose::Words::Replacing::FindReplace;
165  friend class Aspose::Words::RevisionGroup;
166  friend class Aspose::Words::Revisions::RevisionUtil;
167  friend class Aspose::Words::Revisions::BookmarkDeleter;
168  friend class Aspose::Words::Revisions::BookmarkMover;
169  friend class Aspose::Words::Validation::ShapeValidator;
170  friend class Aspose::Words::Layout::Core::WarningGenerator;
171  friend class Aspose::Words::Layout::Core::DocumentLayout;
172  friend class Aspose::Words::Fields::FieldOldResultNodeCollection;
173  friend class Aspose::Words::Fields::FieldReplacer;
174  friend class Aspose::Words::Markup::SdtContentUpdater;
175  friend class Aspose::Words::Tables::FixedGridCalculator;
176  friend class Aspose::Words::RW::Odt::Writer::OdtTrackedChangesWriter;
177  friend class Aspose::Words::RW::Docx::Reader::DocxAltChunkReader;
178  friend class Aspose::Words::Fields::FieldToc;
179  friend class Aspose::Words::Fields::ParagraphTocEntry;
180  friend class Aspose::Words::Fields::TocEntryExtractor;
181  friend class Aspose::Words::Markup::SdtContentHelper;
183  friend class Aspose::Words::Math::OfficeMath;
184  friend class Aspose::Words::NodeCopier;
185  friend class Aspose::Words::NodeTextCollector;
186  friend class Aspose::Words::NodeRangeVisitingHelper;
187  friend class Aspose::Words::NodeUtil;
188  friend class Aspose::Words::Layout::AttributeConverter;
189  friend class Aspose::Words::Layout::DocumentSpanConverter;
190  friend class Aspose::Words::Bookmark;
192  friend class Aspose::Words::DocumentBase;
193  friend class Aspose::Words::Fields::NodeRangeResultApplier;
194  friend class Aspose::Words::FootnoteSeparator;
195  friend class Aspose::Words::DocumentBuilder;
196  friend class Aspose::Words::Validation::DocumentValidator;
197  friend class Aspose::Words::WordCounter;
199  friend class Aspose::Words::RW::Html::Writer::HtmlCoreWriter;
200  friend class Aspose::Words::RW::Wml::Writer::WmlEquationXmlWriter;
201  friend class Aspose::Words::RW::MarkupResolver;
202  friend class Aspose::Words::InlineStory;
203  friend class Aspose::Words::FootnoteSeparatorCollection;
204  friend class Aspose::Words::Markup::SmartTag;
205  friend class Aspose::Words::Story;
206  friend class Aspose::Words::Section;
207  friend class Aspose::Words::TableLayout::TableLayouter;
208  friend class Aspose::Words::Tables::Cell;
209  friend class Aspose::Words::Tables::Row;
210  friend class Aspose::Words::Tables::Table;
211  friend class Aspose::Words::Paragraph;
212  friend class Aspose::Words::RW::Docx::Reader::DocxDocumentReaderBase;
213  friend class Aspose::Words::RW::Nrx::Reader::NrxDocumentReaderBase;
214  friend class Aspose::Words::RW::Html::Writer::HtmlDocumentSplitter;
215  friend class Aspose::Words::RW::Odt::Reader::OdtTextIndexesReader;
216  friend class Aspose::Words::RW::Odt::Reader::OdtTableCellReader;
217  friend class Aspose::Words::RW::Odt::Reader::OdtTableReader;
218  friend class Aspose::Words::RW::Vml::VmlShapeReader;
219  friend class Aspose::Words::RW::Odt::Reader::OdtParagraphReader;
220  friend class Aspose::Words::RW::Wml::Reader::WmlInlineReader;
221  friend class Aspose::Words::WordUtil;
222  friend class Aspose::Words::RW::Docx::Reader::DocxStoryReader;
223  friend class Aspose::Words::RW::Doc::Escher::EsShapeFiler;
224  friend class Aspose::Words::RW::Doc::Reader::ModelBuilder;
225  friend class Aspose::Words::RW::Html::Reader::HtmlTableReader;
226  friend class Aspose::Words::RW::Rtf::Reader::RtfModelBuilder;
227  friend class Aspose::Words::RW::Rtf::Writer::RtfDocPrWriter;
228  friend class Aspose::Words::RW::Wml::Reader::WmlBodyReader;
229 
230 public:
232 
233 public:
234 
238  virtual ASPOSE_WORDS_SHARED_API bool get_IsComposite();
242  ASPOSE_WORDS_SHARED_API bool get_HasChildNodes();
266  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Node> get_LastChild() const;
270  ASPOSE_WORDS_SHARED_API int32_t get_Count();
272 
279  virtual ASPOSE_WORDS_SHARED_API System::String GetText();
314  ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Node> GetChild(Aspose::Words::NodeType nodeType, int32_t index, bool isDeep);
407  ASPOSE_WORDS_SHARED_API void RemoveAllChildren();
412  ASPOSE_WORDS_SHARED_API void RemoveSmartTags();
419  ASPOSE_WORDS_SHARED_API int32_t IndexOf(System::SharedPtr<Aspose::Words::Node> child);
422 
423 protected:
424 
425  bool get_HasNonMarkupDescendants();
426  bool get_HasOneChildOnly();
427  System::SharedPtr<Aspose::Words::Node> get_FirstNonMarkupDescendant();
428  System::SharedPtr<Aspose::Words::Node> get_LastNonMarkupDescendant();
429  System::SharedPtr<Aspose::Words::CompositeNode> get_FirstNonMarkupCompositeDescendant();
430  System::SharedPtr<Aspose::Words::CompositeNode> get_LastNonMarkupCompositeDescendant();
431  System::SharedPtr<Aspose::Words::Node> get_FirstNonAnnotationChild();
432  System::SharedPtr<Aspose::Words::Node> get_LastNonAnnotationChild();
433 
434  ASPOSE_WORDS_SHARED_API CompositeNode();
436 
437  ASPOSE_WORDS_SHARED_API void CoreRemoveSelfOnly();
438  bool HasInlineNodes();
439  virtual ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Node> Clone(bool isCloneChildren, System::SharedPtr<Aspose::Words::INodeCloningListener> cloningListener);
440  virtual ASPOSE_WORDS_SHARED_API void GetTextToBuilder(System::SharedPtr<System::Text::StringBuilder> builder);
445  int32_t IndexOfChildByDescendant(System::SharedPtr<Aspose::Words::Node> descendant, bool skipAnnotations);
446  virtual ASPOSE_WORDS_SHARED_API System::SharedPtr<Aspose::Words::Node> GetNodeFromPos(int32_t position);
447  virtual ASPOSE_WORDS_SHARED_API int32_t GetTextLength();
448  virtual ASPOSE_WORDS_SHARED_API System::String GetEndText();
449  System::String GetChildrenText();
450  ASPOSE_WORDS_SHARED_API bool AcceptCore(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor);
453  ASPOSE_WORDS_SHARED_API bool AcceptChildren(System::SharedPtr<Aspose::Words::DocumentVisitor> visitor);
454  virtual bool CanInsert(System::SharedPtr<Aspose::Words::Node> newChild) = 0;
456 
457  virtual ASPOSE_WORDS_SHARED_API ~CompositeNode();
458 
459  ASPOSE_WORDS_SHARED_API System::Object::shared_members_type GetSharedMembers() override;
460 
461 private:
462 
466 
467  void GetChildrenTextInternal(System::SharedPtr<System::Text::StringBuilder> builder);
468  void InsertAfterCore(System::SharedPtr<Aspose::Words::Node> newChild, System::SharedPtr<Aspose::Words::Node> prevChild);
469  void InsertBeforeCore(System::SharedPtr<Aspose::Words::Node> newChild, System::SharedPtr<Aspose::Words::Node> nextChild);
471 
472 };
473 
474 }
475 }
@ Doc
Microsoft Word 95 or Word 97 - 2003 Document.
System::Details::SharedMembersType shared_members_type
@ Odt
ODF Text Document.
@ SmartTag
A smart tag around one or more inline structures (runs, images, fields,etc.) within a paragraph
@ Vml
Vector Markup Language is used to define the shape.
@ Html
Base class for all nodes of a Word document.
Definition: Node.h:215
Represents a structured document tag (SDT or content control) in a document.
Definition: StructuredDocumentTag.h:102
@ BuildingBlock
A building block within a glossary document (e.g. glossary document entry).
Represents a group of sequential Revision objects.
Definition: RevisionGroup.h:39
System::SharedPtr< System::Collections::Generic::IEnumerator< System::SharedPtr< Aspose::Words::Node > > > GetEnumerator()
Provides support for the for each style iteration over the child nodes of this node.
bool get_HasChildNodes()
Returns true if this node has any child nodes.
@ Nrx
Common modules that are shared between DOCX/WML reader/writer modules.
System::SharedPtr< Aspose::Words::Node > PrependChild(System::SharedPtr< Aspose::Words::Node > newChild)
Adds the specified node to the beginning of the list of child nodes for this node.
Represents a single bookmark.
Definition: Bookmark.h:54
Represents a single section in a document.
Definition: Section.h:100
Base class for objects in the drawing layer, such as an AutoShape, freeform, OLE object,...
Definition: ShapeBase.h:278
System::SharedPtr< Aspose::Words::Node > SelectSingleNode(System::String xpath)
Selects the first Node that matches the XPath expression.
@ Rtf
RTF format.
System::SharedPtr< Aspose::Words::Node > get_LastChild() const
Gets the last child of the node.
System::SharedPtr< Aspose::Words::Node > GetCurrentNode()
@ Words
Represents a glossary document entry such as a Building Block, AutoText or an AutoCorrect entry.
Definition: BuildingBlock.h:55
Provides the abstract base class for a main document and a glossary document of a Word document.
Definition: DocumentBase.h:213
Base class for inline-level nodes that can contain paragraphs and tables.
Definition: InlineStory.h:54
System::SharedPtr< Aspose::Words::Node > InsertBefore(System::SharedPtr< Aspose::Words::Node > newChild, System::SharedPtr< Aspose::Words::Node > refChild)
Inserts the specified node immediately before the specified reference node.
void RemoveSmartTags()
Removes all SmartTag descendant nodes of the current node.
System::SharedPtr< Aspose::Words::Node > GetChild(Aspose::Words::NodeType nodeType, int32_t index, bool isDeep)
Returns an Nth child node that matches the specified type.
Represents a collection of nodes of a specific type.
Definition: NodeCollection.h:75
Base class for nodes that can contain other nodes.
Definition: CompositeNode.h:134
Base class for elements that contain block-level nodes Paragraph and Table.
Definition: Story.h:44
System::SharedPtr< Aspose::Words::Node > GetNextMatchingNode(System::SharedPtr< Aspose::Words::Node > curNode)
virtual bool get_IsComposite()
Returns true as this node can have child nodes.
@ StructuredDocumentTag
This element specifies the presence of a smart tag around one or more inline structures (runs,...
Definition: SmartTag.h:52
void RemoveAllChildren()
Removes all the child nodes of the current node.
System::SharedPtr< Aspose::Words::NodeCollection > get_ChildNodes()
Gets all immediate child nodes of this node.
System::SharedPtr< Aspose::Words::Node > Clone(bool isCloneChildren)
Provides methods to insert text, images and other content, specify font, paragraph and section format...
Definition: DocumentBuilder.h:137
Implements the TOC field.
Definition: FieldToc.h:57
Represents a table in a Word document.
Definition: Table.h:90
@ Docx
Office Open XML WordprocessingML Document (macro-free).
NodeType
Specifies the type of a Word document node.
Definition: NodeType.h:23
System::SharedPtr< Aspose::Words::Node > RemoveChild(System::SharedPtr< Aspose::Words::Node > oldChild)
Removes the specified child node.
Represents a table cell.
Definition: Cell.h:112
Represents an Office Math object such as function, equation, matrix or alike. Can contain child eleme...
Definition: OfficeMath.h:111
Represents a paragraph of text.
Definition: Paragraph.h:220
System::SharedPtr< Aspose::Words::NodeList > SelectNodes(System::String xpath)
Selects a list of nodes matching the XPath expression.
@ FootnoteSeparator
Contains the text of the footnote separator, represented by FootnoteSeparator.
System::SharedPtr< Aspose::Words::CompositeNode > get_Container()
@ Tables
@ Section
A Section object that corresponds to one section in a Word document.
@ Layout
Module that builds a document layout.
@ OfficeMath
Module that renders OfficeMath.
Represents a table row.
Definition: Row.h:98
System::SharedPtr< Aspose::Words::Node > InsertAfter(System::SharedPtr< Aspose::Words::Node > newChild, System::SharedPtr< Aspose::Words::Node > refChild)
Inserts the specified node immediately after the specified reference node.
virtual System::String GetText()
Gets the text of this node and of all its children.
int32_t get_Count()
Gets the number of immediate children of this node.
EnumeratorBasedIterator< T, IEnumerator< T > > end() noexcept
System::SharedPtr< Aspose::Words::Node > AppendChild(System::SharedPtr< Aspose::Words::Node > newChild)
Adds the specified node to the end of the list of child nodes for this node.
@ Paragraph
Specifies that the building block shall be inserted into its own paragraph.
VisitorAction
Allows the visitor to control the enumeration of nodes.
Definition: VisitorAction.h:23
System::SharedPtr< Aspose::Words::Node > get_FirstChild() const
Gets the first child of the node.
int32_t IndexOf(System::SharedPtr< Aspose::Words::Node > child)
Returns the index of the specified child node in the child node array.
System::SharedPtr< Aspose::Words::NodeCollection > GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep)
Returns a live collection of child nodes that match the specified type.