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