CompositeNode
محتويات
[
يخفي
]CompositeNode class
الفئة الأساسية للعقد التي يمكن أن تحتوي على عقد أخرى.
لمعرفة المزيد، قم بزيارةنموذج كائن مستند Aspose.Words (DOM) مقالة توثيقية.
public abstract class CompositeNode : Node, IEnumerable<Node>, IXPathNavigable
الخصائص
اسم | وصف |
---|---|
Count { get; } | يحصل على عدد الأطفال المباشرين لهذه العقدة. |
CustomNodeId { get; set; } | يحدد معرف العقدة المخصصة. |
virtual Document { get; } | الحصول على المستند الذي تنتمي إليه هذه العقدة. |
FirstChild { get; } | يحصل على الطفل الأول للعقدة. |
HasChildNodes { get; } | إرجاعحقيقي إذا كانت هذه العقدة تحتوي على أي عقد فرعية. |
override IsComposite { get; } | إرجاعحقيقي لأن هذه العقدة يمكن أن تحتوي على عقد فرعية. |
LastChild { get; } | يحصل على الطفل الأخير للعقدة. |
NextSibling { get; } | يحصل على العقدة التي تلي هذه العقدة مباشرة. |
abstract NodeType { get; } | يحصل على نوع هذه العقدة. |
ParentNode { get; } | يحصل على الأصل المباشر لهذه العقدة. |
PreviousSibling { get; } | يحصل على العقدة التي تسبق هذه العقدة مباشرة. |
Range { get; } | إرجاع أRange الكائن الذي يمثل جزء المستند الموجود في هذه العقدة. |
طُرق
اسم | وصف |
---|---|
abstract Accept(DocumentVisitor) | يقبل الزائر. |
AppendChild(Node) | إضافة العقدة المحددة إلى نهاية قائمة العقد التابعة لهذه العقدة. |
Clone(bool) | إنشاء نسخة مكررة من العقدة. |
CreateNavigator() | إنشاء متصفح يمكن استخدامه لاجتياز العقد وقراءتها. |
GetAncestor(NodeType) | يحصل على السلف الأول للمحددNodeType . |
GetAncestor(Type) | الحصول على السلف الأول لنوع الكائن المحدد. |
GetChild(NodeType, int, bool) | إرجاع العقدة الفرعية N التي تطابق النوع المحدد. |
GetChildNodes(NodeType, bool) | إرجاع مجموعة مباشرة من العقد الفرعية التي تطابق النوع المحدد. |
GetEnumerator() | يوفر الدعم لتكرار كل نمط عبر العقد الفرعية لهذه العقدة. |
override GetText() | الحصول على نص هذه العقدة وجميع أبنائها. |
IndexOf(Node) | إرجاع فهرس العقدة الفرعية المحددة في صفيف العقدة الفرعية. |
InsertAfter(Node, Node) | يقوم بإدراج العقدة المحددة مباشرة بعد العقدة المرجعية المحددة. |
InsertBefore(Node, Node) | يقوم بإدراج العقدة المحددة مباشرة قبل العقدة المرجعية المحددة. |
NextPreOrder(Node) | الحصول على العقدة التالية وفقًا لخوارزمية اجتياز شجرة الطلب المسبق. |
PrependChild(Node) | إضافة العقدة المحددة إلى بداية قائمة العقد التابعة لهذه العقدة. |
PreviousPreOrder(Node) | الحصول على العقدة السابقة وفقًا لخوارزمية اجتياز شجرة الطلب المسبق. |
Remove() | يزيل نفسه من الأصل. |
RemoveAllChildren() | إزالة جميع العقد الفرعية للعقدة الحالية. |
RemoveChild(Node) | إزالة العقدة الفرعية المحددة. |
RemoveSmartTags() | يزيل الكلSmartTag العقد التابعة للعقدة الحالية. |
SelectNodes(string) | تحديد قائمة العقد المطابقة لتعبير XPath. |
SelectSingleNode(string) | تحديد الأولNode الذي يطابق تعبير XPath. |
ToString(SaveFormat) | تصدير محتوى العقدة إلى سلسلة بالتنسيق المحدد. |
ToString(SaveOptions) | تصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة. |
ملاحظات
يتم تمثيل المستند كشجرة من العقد، تشبه DOM أو XmlDocument.
لمزيد من المعلومات، راجع نمط التصميم المركب.
الCompositeNode
فصل:
- يوفر الوصول إلى العقد الفرعية.
- ينفذ العمليات المركبة مثل إدراج وإزالة الأطفال.
- يوفر طرقًا للتنقل عبر XPath.
أمثلة
يوضح كيفية اجتياز مجموعة العقد الفرعية للعقدة المركبة.
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;
}
أنظر أيضا
- class Node
- مساحة الاسم Aspose.Words
- المجسم Aspose.Words