NodeCollection

NodeCollection class

يمثل مجموعة من العقد من نوع معين.

لمعرفة المزيد، قم بزيارةنموذج كائن مستند Aspose.Words (DOM) مقالة توثيقية.

public class NodeCollection : IEnumerable<Node>

الخصائص

اسموصف
Count { get; }الحصول على عدد العقد في المجموعة.
Item { get; }يسترد عقدة في الفهرس المحدد.

طُرق

اسموصف
Add(Node)إضافة عقدة إلى نهاية المجموعة.
Clear()إزالة كافة العقد من هذه المجموعة ومن المستند.
Contains(Node)تحديد ما إذا كانت العقدة موجودة في المجموعة.
GetEnumerator()يوفر تكرارًا بسيطًا لنمط “foreach” عبر مجموعة العقد.
IndexOf(Node)إرجاع الفهرس الصفري للعقدة المحددة.
Insert(int, Node)إدراج عقدة في المجموعة في الفهرس المحدد.
Remove(Node)إزالة العقدة من المجموعة ومن المستند.
RemoveAt(int)إزالة العقدة الموجودة في الفهرس المحدد من المجموعة ومن المستند.
ToArray()نسخ كافة العقد من المجموعة إلى مجموعة جديدة من العقد.

ملاحظات

NodeCollection لا يمتلك العقد التي يحتوي عليها، بل هو مجرد مجموعة مختارة من العقد من النوع المحدد، ولكن يتم تخزين العقد في الشجرة تحت العقد الأصلية الخاصة بها.

NodeCollectionيدعم الوصول المفهرس والتكرار ويوفر طرق الإضافة والإزالة.

الNodeCollection المجموعة “مباشرة”، أي أن التغييرات التي يتم إجراؤها على العناصر الفرعية للعقدة object التي تم إنشاؤها منها تنعكس فورًا في العقد التي يتم إرجاعها بواسطةNodeCollection الخصائص والأساليب.

NodeCollection يتم إرجاعها بواسطةGetChildNodes ويعمل أيضًا كفئة أساسية لمجموعات العقدة المكتوبة مثلSectionCollectionParagraphCollection إلخ.

NodeCollection يمكن أن تكون “مسطحة” وتحتوي فقط على العناصر الفرعية المباشرة للعقدة التي تم إنشاؤها منها، أو يمكن أن تكون “عميقة” وتحتوي على جميع العناصر الفرعية.

أمثلة

يوضح كيفية استبدال جميع أشكال مربعات النص بأشكال الصور.

Document doc = new Document(MyDir + "Textboxes in drawing canvas.docx");

Shape[] shapes = doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().ToArray();

Assert.AreEqual(3, shapes.Count(s => s.ShapeType == ShapeType.TextBox));
Assert.AreEqual(1, shapes.Count(s => s.ShapeType == ShapeType.Image));

foreach (Shape shape in shapes)
{
    if (shape.ShapeType == ShapeType.TextBox)
    {
        Shape replacementShape = new Shape(doc, ShapeType.Image);
        replacementShape.ImageData.SetImage(ImageDir + "Logo.jpg");
        replacementShape.Left = shape.Left;
        replacementShape.Top = shape.Top;
        replacementShape.Width = shape.Width;
        replacementShape.Height = shape.Height;
        replacementShape.RelativeHorizontalPosition = shape.RelativeHorizontalPosition;
        replacementShape.RelativeVerticalPosition = shape.RelativeVerticalPosition;
        replacementShape.HorizontalAlignment = shape.HorizontalAlignment;
        replacementShape.VerticalAlignment = shape.VerticalAlignment;
        replacementShape.WrapType = shape.WrapType;
        replacementShape.WrapSide = shape.WrapSide;

        shape.ParentNode.InsertAfter(replacementShape, shape);
        shape.Remove();
    }
}

shapes = doc.GetChildNodes(NodeType.Shape, true).OfType<Shape>().ToArray();

Assert.AreEqual(0, shapes.Count(s => s.ShapeType == ShapeType.TextBox));
Assert.AreEqual(4, shapes.Count(s => s.ShapeType == ShapeType.Image));

doc.Save(ArtifactsDir + "Shape.ReplaceTextboxesWithImages.docx");

أنظر أيضا