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)
ParameterTypBeschreibung
nodeTypeNodeTypeGibt den Typ des untergeordneten Knotens an.
indexInt32Nullbasierter Index des auszuwählenden untergeordneten Knotens. Negative Indizes sind ebenfalls zulässig und zeigen den Zugriff vom Ende an. , d. h. -1 bedeutet den letzten Knoten.
isDeepBooleanWAHR um rekursiv aus allen untergeordneten Knoten auszuwählen; FALSCHnur unter unmittelbaren Kindern auszuwählen. Weitere Informationen finden Sie in den Anmerkungen.

Rückgabewert

Der untergeordnete Knoten, der den Kriterien entspricht oderNull wenn kein passender Knoten gefunden wird.

Bemerkungen

Wenn der Index außerhalb des Bereichs liegt, aNull ist zurück gekommen.

Beachten Sie, dass Markup-Knoten (StructuredDocumentTag UndSmartTag ) werden auch dann durchlaufen, wennisDeep =FALSCH UndGetChild wird für Nicht-Markup-Knotentypen aufgerufen. Wenn beispielsweise der erste Lauf in einem para in einen eingeschlossen istStructuredDocumentTag , es wird trotzdem von zurückgegebenGetChild(Run , 0,FALSCH).

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 Knotenlebensdauer vorhanden ist.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

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

// Durch die Sammlung der unmittelbar untergeordneten Elemente des Absatzes iterieren,
// und alle Läufe oder Formen drucken, die wir darin finden.
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;
    }

Siehe auch