Node
محتويات
[
يخفي
]Node class
الفئة الأساسية لجميع العقد في مستند Word.
لمعرفة المزيد، قم بزيارةنموذج كائن مستند Aspose.Words (DOM) مقالة توثيقية.
public abstract class Node
الخصائص
اسم | وصف |
---|---|
CustomNodeId { get; set; } | يحدد معرف العقدة المخصصة. |
virtual Document { get; } | الحصول على المستند الذي تنتمي إليه هذه العقدة. |
virtual IsComposite { get; } | إرجاعحقيقي إذا كانت هذه العقدة يمكن أن تحتوي على عقد أخرى. |
NextSibling { get; } | يحصل على العقدة التي تلي هذه العقدة مباشرة. |
abstract NodeType { get; } | يحصل على نوع هذه العقدة. |
ParentNode { get; } | يحصل على الأصل المباشر لهذه العقدة. |
PreviousSibling { get; } | يحصل على العقدة التي تسبق هذه العقدة مباشرة. |
Range { get; } | إرجاع أRange الكائن الذي يمثل جزء المستند الموجود في هذه العقدة. |
طُرق
اسم | وصف |
---|---|
abstract Accept(DocumentVisitor) | يقبل الزائر. |
Clone(bool) | إنشاء نسخة مكررة من العقدة. |
GetAncestor(NodeType) | يحصل على السلف الأول للمحددNodeType . |
GetAncestor(Type) | الحصول على السلف الأول لنوع الكائن المحدد. |
virtual GetText() | الحصول على نص هذه العقدة وجميع أبنائها. |
NextPreOrder(Node) | الحصول على العقدة التالية وفقًا لخوارزمية اجتياز شجرة الطلب المسبق. |
PreviousPreOrder(Node) | الحصول على العقدة السابقة وفقًا لخوارزمية اجتياز شجرة الطلب المسبق. |
Remove() | يزيل نفسه من الأصل. |
ToString(SaveFormat) | تصدير محتوى العقدة إلى سلسلة بالتنسيق المحدد. |
ToString(SaveOptions) | تصدير محتوى العقدة إلى سلسلة باستخدام خيارات الحفظ المحددة. |
static NodeTypeToString(NodeType) | طريقة مساعدة تقوم بتحويل قيمة تعداد نوع العقدة إلى سلسلة سهلة الاستخدام. |
ملاحظات
يتم تمثيل المستند كشجرة من العقد، تشبه DOM أو XmlDocument.
لمزيد من المعلومات، راجع نمط التصميم المركب.
الNode
فصل:
- يحدد واجهة العقدة الفرعية.
- يحدد الواجهة لزيارة العقد.
- يوفر إمكانية الاستنساخ الافتراضية.
- ينفذ العقدة الأصلية وآليات وثيقة المالك.
- ينفذ الوصول إلى العقد الأخوة.
أمثلة
يوضح كيفية إزالة جميع العقد الفرعية من نوع معين من العقدة المركبة.
Document doc = new Document(MyDir + "Tables.docx");
Assert.AreEqual(2, doc.GetChildNodes(NodeType.Table, true).Count);
Node curNode = doc.FirstSection.Body.FirstChild;
while (curNode != null)
{
// احفظ العقدة الشقيقة التالية كمتغير في حالة أردنا الانتقال إليها بعد حذف هذه العقدة.
Node nextNode = curNode.NextSibling;
// يمكن أن يحتوي نص القسم على عقد الفقرة والجدول.
// إذا كانت العقدة عبارة عن جدول، فقم بإزالتها من الأصل.
if (curNode.NodeType == NodeType.Table)
curNode.Remove();
curNode = nextNode;
}
Assert.AreEqual(0, doc.GetChildNodes(NodeType.Table, true).Count);
يوضح كيفية استنساخ عقدة مركبة.
Document doc = new Document();
Paragraph para = doc.FirstSection.Body.FirstParagraph;
para.AppendChild(new Run(doc, "Hello world!"));
// فيما يلي طريقتان لاستنساخ عقدة مركبة.
// 1 - أنشئ نسخة من العقدة، وأنشئ نسخة من كل عقد من العقد التابعة لها أيضًا.
Node cloneWithChildren = para.Clone(true);
Assert.IsTrue(((CompositeNode)cloneWithChildren).HasChildNodes);
Assert.AreEqual("Hello world!", cloneWithChildren.GetText().Trim());
// 2 - إنشاء نسخة من العقدة بمفردها دون أي عناصر فرعية.
Node cloneWithoutChildren = para.Clone(false);
Assert.IsFalse(((CompositeNode)cloneWithoutChildren).HasChildNodes);
Assert.AreEqual(string.Empty, cloneWithoutChildren.GetText().Trim());
يوضح كيفية اجتياز مجموعة العقد الفرعية للعقدة المركبة.
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;
}
أنظر أيضا
- مساحة الاسم Aspose.Words
- المجسم Aspose.Words