GetChild

CompositeNode.GetChild method

Returnerar en N:te underordnad nod som matchar den angivna typen.

public Node GetChild(NodeType nodeType, int index, bool isDeep)
ParameterTypBeskrivning
nodeTypeNodeTypeAnger typen av underordnad nod.
indexInt32Nollbaserat index för den underordnade noden att välja. Negativa index är också tillåtna och indikerar åtkomst från slutet, det vill säga -1 betyder den sista noden.
isDeepBooleanSann för att välja från alla underordnade noder rekursivt; falskatt endast välja bland närmaste barn. Se anmärkningar för mer info.

Returvärde

Den underordnade noden som matchar kriterierna ellernull om ingen matchande nod hittas.

Anmärkningar

Om index ligger utanför intervallet, anull returneras.

Observera att uppmärkningsnoder (StructuredDocumentTag ochSmartTag ) korsas även närisDeep =falsk ochGetChild anropas för non-markup nodtyp. Till exempel om den första körningen i en para är inslagen i enStructuredDocumentTag , kommer den fortfarande att returneras avGetChild(Run , 0,falsk).

Exempel

Visar hur man tillämpar egenskaperna för en tabells stil direkt på tabellens element.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Hello world!");
builder.EndTable();

TableStyle tableStyle = (TableStyle)doc.Styles.Add(StyleType.Table, "MyTableStyle1");
tableStyle.RowStripe = 3;
tableStyle.CellSpacing = 5;
tableStyle.Shading.BackgroundPatternColor = Color.AntiqueWhite;
tableStyle.Borders.Color = Color.Blue;
tableStyle.Borders.LineStyle = LineStyle.DotDash;

table.Style = tableStyle;

// Den här metoden gäller tabellstilsegenskaper som de vi ställt in ovan.
doc.ExpandTableStylesToDirectFormatting();

doc.Save(ArtifactsDir + "Document.TableStyleToDirectFormatting.docx");

Visar hur man går igenom en sammansatt nods samling av undernoder.

Document doc = new Document();

// Lägg till två körningar och en form som underordnade noder i det första stycket i detta dokument.
Paragraph paragraph = (Paragraph)doc.GetChild(NodeType.Paragraph, 0, true);
paragraph.AppendChild(new Run(doc, "Hello world! "));

Shape shape = new Shape(doc, ShapeType.Rectangle);
shape.Width = 200;
shape.Height = 200;
// Observera att 'CustomNodeId' inte sparas i en utdatafil och endast existerar under nodens livstid.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

paragraph.AppendChild(new Run(doc, "Hello again!"));

// Iterera genom styckets samling av närmaste barn,
// och skriv ut alla körningar eller former som vi hittar inom.
NodeCollection children = paragraph.GetChildNodes(NodeType.Any, false);

Assert.AreEqual(3, paragraph.GetChildNodes(NodeType.Any, false).Count);

foreach (Node child in children)
    switch (child.NodeType)
    {
        case NodeType.Run:
            Console.WriteLine("Run contents:");
            Console.WriteLine($"\t\"{child.GetText().Trim()}\"");
            break;
        case NodeType.Shape:
            Shape childShape = (Shape)child;
            Console.WriteLine("Shape:");
            Console.WriteLine($"\t{childShape.ShapeType}, {childShape.Width}x{childShape.Height}");
            break;
    }

Se även