getChild method
getChild(nodeType, index, isDeep)
Returns an Nth child node that matches the specified type.
getChild(nodeType: Aspose.Words.NodeType, index: number, isDeep: boolean)
Parameter | Type | Description |
---|---|---|
nodeType | NodeType | Specifies the type of the child node. |
index | number | 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 | boolean | true to select from all child nodes recursively; false to select only among immediate children. See remarks for more info. |
Remarks
If index is out of range, a null
is returned.
Note that markup nodes (NodeType.StructuredDocumentTag and NodeType.SmartTag)
are traversed even when isDeep =false
and CompositeNode.getChild() is invoked for non-markup node type. For example if the first run in a para
is wrapped in a StructuredDocumentTag, it will still be returned by CompositeNode.getChild()(NodeType.Run, 0, false
).
Returns
The child node that matches the criteria or null
if no matching node is found.
Examples
Shows how to traverse through a composite node’s collection of child nodes.
let doc = new aw.Document();
// Add two runs and one shape as child nodes to the first paragraph of this document.
let paragraph = doc.getParagraph(0, true);
paragraph.appendChild(new aw.Run(doc, "Hello world! "));
let shape = new aw.Drawing.Shape(doc, aw.Drawing.ShapeType.Rectangle);
shape.width = 200;
shape.height = 200;
// Note that the 'CustomNodeId' is not saved to an output file and exists only during the node lifetime.
shape.customNodeId = 100;
shape.wrapType = aw.Drawing.WrapType.Inline;
paragraph.appendChild(shape);
paragraph.appendChild(new aw.Run(doc, "Hello again!"));
// Iterate through the paragraph's collection of immediate children,
// and print any runs or shapes that we find within.
let children = paragraph.getChildNodes(aw.NodeType.Any, false);
expect(paragraph.getChildNodes(aw.NodeType.Any, false).count).toEqual(3);
for (let child of children)
switch (child.nodeType)
{
case aw.NodeType.Run:
console.log("Run contents:");
console.log(`\t\"${child.getText().trim()}\"`);
break;
case aw.NodeType.Shape:
let childShape = child.asShape();
console.log("Shape:");
console.log(`\t${childShape.shapeType}, ${childShape.width}x${childShape.height}`);
expect(shape.customNodeId).toEqual(100);
break;
}
See Also
- module Aspose.Words
- class CompositeNode