GetChild

CompositeNode.GetChild method

Gibt einen N-ten untergeordneten Knoten zurück, der dem angegebenen Typ entspricht.

public Node GetChild(NodeType nodeType, int index, bool isDeep)
Parameter Typ Beschreibung
nodeType NodeType Gibt den Typ des untergeordneten Knotens an.
index Int32 Nullbasierter Index des auszuwählenden untergeordneten Knotens. Negative Indizes sind ebenfalls zulässig und zeigen den Zugriff vom Ende an, , dh -1 bedeutet den letzten Knoten.
isDeep Boolean True, um rekursiv aus allen untergeordneten Knoten auszuwählen. False, um nur unter unmittelbar untergeordneten Knoten auszuwählen. Siehe Bemerkungen für weitere Informationen.

Rückgabewert

Der untergeordnete Knoten, der den Kriterien entspricht, oder null, wenn kein übereinstimmender Knoten gefunden wird.

Bemerkungen

Wenn der Index außerhalb des gültigen Bereichs liegt, wird eine Null zurückgegeben.

Beachten Sie, dass Markup-Knoten (StructuredDocumentTag undSmartTag) werden auch dann durchlaufen, wenn isDeep = false ist und GetChild für einen Nicht-Markup-Knotentyp aufgerufen wird. Wenn beispielsweise die erste Ausführung in einem Absatz in ein StructuredDocumentTag eingeschlossen ist, wird sie dennoch von GetChild(NodeType.Run, 0, false) zurückgegeben.

Beispiele

Zeigt, wie die Eigenschaften eines Tabellenstils direkt auf die Elemente der Tabelle angewendet werden.

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;

// Diese Methode betrifft Tabellenstileigenschaften wie die, die wir oben festgelegt haben.
doc.ExpandTableStylesToDirectFormatting();

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

Zeigt, wie die Sammlung untergeordneter Knoten eines zusammengesetzten Knotens durchlaufen wird.

Document doc = new Document();

// Fügen Sie dem ersten Absatz dieses Dokuments zwei Läufe und eine Form als untergeordnete Knoten hinzu.
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;
// Beachten Sie, dass die 'CustomNodeId' nicht in einer Ausgabedatei gespeichert wird und nur während der Lebensdauer des Knotens existiert.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

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

// Durch die Sammlung der unmittelbaren Kinder des Absatzes iterieren,
// und drucken Sie alle Läufe oder Formen, die wir darin finden.
NodeCollection children = paragraph.ChildNodes;

Assert.AreEqual(3, paragraph.ChildNodes.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}");
    }

Siehe auch