Aspose::Words::CompositeNode::GetChild method
Contents
[
Hide
]CompositeNode::GetChild method
Returns an Nth child node that matches the specified type.
System::SharedPtr<Aspose::Words::Node> Aspose::Words::CompositeNode::GetChild(Aspose::Words::NodeType nodeType, int32_t index, bool isDeep)
Parameter | Type | Description |
---|---|---|
nodeType | Aspose::Words::NodeType | Specifies the type of the child node. |
index | int32_t | Zero based index of the child node to select. Negative indexes are also allowed and indicate access from the end, that is -1 means the last node. |
isDeep | bool | true to select from all child nodes recursively; false to select only among immediate children. See remarks for more info. |
ReturnValue
The child node that matches the criteria or null if no matching node is found.
Remarks
If index is out of range, a null is returned.
Examples
Shows how to apply the properties of a table’s style directly to the table’s elements.
auto doc = MakeObject<Document>();
auto builder = MakeObject<DocumentBuilder>(doc);
SharedPtr<Table> table = builder->StartTable();
builder->InsertCell();
builder->Write(u"Hello world!");
builder->EndTable();
auto tableStyle = System::ExplicitCast<TableStyle>(doc->get_Styles()->Add(StyleType::Table, u"MyTableStyle1"));
tableStyle->set_RowStripe(3);
tableStyle->set_CellSpacing(5);
tableStyle->get_Shading()->set_BackgroundPatternColor(System::Drawing::Color::get_AntiqueWhite());
tableStyle->get_Borders()->set_Color(System::Drawing::Color::get_Blue());
tableStyle->get_Borders()->set_LineStyle(LineStyle::DotDash);
table->set_Style(tableStyle);
// This method concerns table style properties such as the ones we set above.
doc->ExpandTableStylesToDirectFormatting();
doc->Save(ArtifactsDir + u"Document.TableStyleToDirectFormatting.docx");
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
- Class Node
- Enum NodeType
- Class CompositeNode
- Namespace Aspose::Words
- Library Aspose.Words for C++