NodeCollection

NodeCollection class

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

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

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

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

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

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

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");

أنظر أيضا