CompositeNode
محتويات
[
يخفي
]CompositeNode class
الفئة الأساسية للعقد التي يمكن أن تحتوي على عقد أخرى.
لمعرفة المزيد، قم بزيارةنموذج كائن المستند (DOM) في Aspose.Words مقالة توثيقية.
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) | يقبل زائرًا. |
| abstract AcceptEnd(DocumentVisitor) | عند تنفيذه في فئة مشتقة، يتم استدعاء طريقة VisitXXXEnd للزائر المستند المحدد. |
| abstract AcceptStart(DocumentVisitor) | عند تنفيذه في فئة مشتقة، يتم استدعاء طريقة VisitXXXStart للزائر المستند المحدد. |
| AppendChild<T>(T) | يضيف العقدة المحددة إلى نهاية قائمة العقد الفرعية لهذه العقدة. |
| Clone(bool) | ينشئ نسخة مكررة من العقدة. |
| CreateNavigator() | ينشئ متصفحًا يمكن استخدامه للتنقل بين العقد وقراءتها. |
| GetAncestor(NodeType) | يحصل على السلف الأول للعنصر المحددNodeType . |
| GetAncestor(Type) | يحصل على السلف الأول لنوع الكائن المحدد. |
| GetChild(NodeType, int, bool) | يعيد عقدة فرعية رقم N تطابق النوع المحدد. |
| GetChildNodes(NodeType, bool) | يعيد مجموعة حية من العقد الفرعية التي تطابق النوع المحدد. |
| GetEnumerator() | يوفر الدعم لكل تكرار للأسلوب على العقد الفرعية لهذه العقدة. |
| override GetText() | يحصل على نص هذه العقدة وجميع أبنائها. |
| IndexOf(Node) | يعيد مؤشر العقدة الفرعية المحددة في مجموعة العقد الفرعية. |
| InsertAfter<T>(T, Node) | يقوم بإدراج العقدة المحددة فورًا بعد عقدة المرجع المحددة. |
| InsertBefore<T>(T, Node) | يقوم بإدراج العقدة المحددة مباشرة قبل عقدة المرجع المحددة. |
| NextPreOrder(Node) | يحصل على العقدة التالية وفقًا لخوارزمية عبور شجرة الترتيب المسبق. |
| PrependChild<T>(T) | يضيف العقدة المحددة إلى بداية قائمة العقد الفرعية لهذه العقدة. |
| PreviousPreOrder(Node) | يحصل على العقدة السابقة وفقًا لخوارزمية عبور شجرة الترتيب المسبق. |
| Remove() | يزيل نفسه من الأصل. |
| RemoveAllChildren() | يزيل جميع العقد الفرعية للعقدة الحالية. |
| RemoveChild<T>(T) | يزيل العقدة الفرعية المحددة. |
| 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