GetChild

CompositeNode.GetChild method

إرجاع العقدة الفرعية N التي تطابق النوع المحدد.

public Node GetChild(NodeType nodeType, int index, bool isDeep)
معامليكتبوصف
nodeTypeNodeTypeيحدد نوع العقدة الفرعية.
indexInt32الفهرس الصفري للعقدة الفرعية المراد تحديده. يُسمح أيضًا بالفهارس السالبة وتشير إلى الوصول من النهاية، الذي يعني -1 العقدة الأخيرة.
isDeepBooleanحقيقي للاختيار من بين جميع العقد الفرعية بشكل متكرر؛ خطأ شنيعللاختيار فقط بين الأطفال المباشرين. انظر الملاحظات لمزيد من المعلومات.

قيمة الإرجاع

العقدة الفرعية التي تطابق المعايير أوباطل إذا لم يتم العثور على عقدة مطابقة.

ملاحظات

إذا كان الفهرس خارج النطاق، أباطل يتم إرجاع.

لاحظ أن العقد الترميزية (StructuredDocumentTag وSmartTag ) يتم اجتيازها حتى عندماisDeep =خطأ شنيع وGetChild يتم استدعاؤه لنوع العقدة غير الترميزية. على سبيل المثال، إذا تم تغليف التشغيل الأول في para بملف aStructuredDocumentTag ، سيتم إعادته بواسطةGetChild(Run , 0,خطأ شنيع).

أمثلة

يوضح كيفية تطبيق خصائص نمط الجدول مباشرة على عناصر الجدول.

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;

// تتعلق هذه الطريقة بخصائص نمط الجدول مثل تلك التي حددناها أعلاه.
doc.ExpandTableStylesToDirectFormatting();

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

يوضح كيفية اجتياز مجموعة العقد الفرعية للعقدة المركبة.

Document doc = new Document();

// أضف مسارين وشكلًا واحدًا كعقد فرعية إلى الفقرة الأولى من هذه الوثيقة.
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;
// لاحظ أن "CustomNodeId" لا يتم حفظه في ملف إخراج وهو موجود فقط أثناء عمر العقدة.
shape.CustomNodeId = 100;
shape.WrapType = WrapType.Inline;
paragraph.AppendChild(shape);

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

// كرر من خلال مجموعة الفقرة من العناصر الفرعية المباشرة،
// وطباعة أي مسارات أو أشكال نجدها داخلها.
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;
    }

أنظر أيضا