Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
نموذج كائن المستند Aspose.Words (DOM) هو تمثيل في الذاكرة لمستند ورد. و Aspose.Words DOM يسمح لك لقراءة برمجيا، والتلاعب، وتعديل المحتوى والتنسيق من وثيقة ورد.
يصف هذا القسم الفئات الرئيسية لـ Aspose.Words DOM وعلاقاتهم. باستخدام فئات Aspose.Words DOM، يمكنك الحصول على وصول برمجي إلى عناصر المستند والتنسيق.
عند قراءة مستند في Aspose.Words DOM، يتم إنشاء شجرة كائن وأنواع مختلفة من عناصر المستند المصدر لها كائنات شجرة DOM الخاصة بها بخصائص مختلفة.
عندما يقرأ Aspose.Words مستند كلمة في الذاكرة، فإنه ينشئ كائنات من أنواع مختلفة تمثل عناصر مستند مختلفة. كل تشغيل لنص أو فقرة أو جدول أو قسم هو عقدة، وحتى المستند نفسه هو عقدة. Aspose.Words يحدد فئة لكل نوع عقدة المستند.
تتبع شجرة المستندات في Aspose.Words نمط التصميم المركب:
يوضح الرسم البياني الموضح أدناه الوراثة بين فئات العقدة لنموذج كائن المستند Aspose.Words (DOM). أسماء الفئات المجردة مكتوبة بخط مائل.
Node.
دعونا ننظر إلى مثال. تعرض الصورة التالية مستندا Microsoft Word يحتوي على أنواع مختلفة من المحتوى.
عند قراءة المستند أعلاه في Aspose.Words DOM، يتم إنشاء شجرة الكائنات، كما هو موضح في المخطط أدناه.
Document, Section, Paragraph, Table, Shape, Run, وجميع علامات الحذف الأخرى في الرسم التخطيطي هي Aspose.Words كائنات تمثل عناصر مستند الكلمة.
Node نوععلى الرغم من أن فئة Node كافية بما يكفي لتمييز العقد المختلفة عن بعضها البعض، فإن Aspose.Words يوفر NodeType التعداد لتبسيط بعض API المهام، مثل تحديد العقد من نوع معين.
يمكن الحصول على نوع كل عقدة باستخدام خاصية NodeType. ترجع هذه الخاصية NodeType enumeration value. For example, a paragraph node represented by the Paragraph class returns NodeType.Paragraph، وعقدة جدول ممثلة بـ Table class returns NodeType.Table.
يوضح المثال التالي كيفية الحصول على نوع عقدة باستخدام NodeType تعداد:
Aspose.Words يمثل وثيقة كشجرة عقدة، والتي تمكنك من التنقل بين العقد. يصف هذا القسم كيفية استكشاف شجرة المستندات والتنقل فيها في Aspose.Words.
عند فتح نموذج المستند، الذي تم تقديمه مسبقا، في مستكشف المستندات، تظهر شجرة العقدة تماما كما يتم تمثيلها في Aspose.Words.
العقد في الشجرة لها علاقات بينهما:
العقد التي يمكن أن تحتوي على عقد أخرى مشتقة من فئة CompositeNode، وجميع العقد مشتقة في النهاية من فئة Node. توفر هاتان الفئتان الأساسيتان طرقا وخصائص شائعة للملاحة والتعديل في بنية الشجرة.
يوضح مخطط الكائن UML التالي عدة عقد من نموذج المستند وعلاقاتها ببعضها البعض عبر خصائص الوالد والطفل والأخوة:
تنتمي العقدة دائما إلى مستند معين، حتى لو تم إنشاؤه للتو أو إزالته من الشجرة، لأنه يتم تخزين الهياكل الحيوية على مستوى المستند مثل الأنماط والقوائم في عقدة Document. على سبيل المثال، لا يمكن أن يكون لديك Paragraph بدون Document لأن كل فقرة لها نمط معين يتم تعريفه عالميا للمستند. يتم استخدام هذه القاعدة عند إنشاء أي عقد جديدة. تتطلب إضافة Paragraph جديد مباشرة إلى DOM تمرير كائن مستند إلى المنشئ.
عند إنشاء فقرة جديدة باستخدام DocumentBuilder، يكون لدى المنشئ دائما فئة Document مرتبطة بها من خلال خاصية DocumentBuilder.Document.
يوضح مثال الكود التالي أنه عند إنشاء أي عقدة، يتم دائما تعريف المستند الذي سيمتلك العقدة:
كل عقدة لها أصل محدد بواسطة ParentNode خاصية. لا تحتوي العقدة على عقدة أصل، أي ParentNode فارغ، في الحالات التالية:
يمكنك إزالة عقدة من الأصل عن طريق استدعاء طريقة Remove.يوضح مثال التعليمات البرمجية التالية كيفية الوصول إلى العقدة الأصل:
الطريقة الأكثر فعالية للوصول إلى العقد الفرعية لـ CompositeNode هي عبر FirstChild و LastChild الخصائص التي تعيد العقد الفرعية الأولى والأخيرة، على التوالي. إذا لم تكن هناك عقد فرعية، فستعود هذه الخصائص null.
CompositeNode
إذا لم يكن للعقدة طفل، فستقوم الخاصية ChildNodes بإرجاع مجموعة فارغة. يمكنك التحقق مما إذا كان CompositeNode يحتوي على أي عقد فرعية باستخدام خاصية HasChildNodes.
يوضح مثال الكود التالي كيفية تعداد العقد الفرعية الفورية لـ CompositeNode باستخدام العداد الذي توفره مجموعة ChildNodes:
يوضح مثال الكود التالي كيفية تعداد العقد الفرعية الفورية لـ CompositeNode باستخدام الوصول المفهرس:
يمكنك الحصول على العقدة التي تسبق أو تتبع عقدة معينة مباشرة باستخدام خصائص PreviousSibling و NextSibling، على التوالي. إذا كانت العقدة هي آخر طفل في الأصل، فإن الخاصية NextSibling هي null. على العكس من ذلك، إذا كانت العقدة هي الطفل الأول لوالدها، فإن PreviousSibling الخاصية هي null.
يوضح مثال الكود التالي كيفية زيارة جميع العقد الفرعية المباشرة وغير المباشرة للعقدة المركبة بكفاءة:
حتى الآن، ناقشنا الخصائص التي تعيد أحد الأنواع الأساسية – Node أو CompositeNode. ولكن في بعض الأحيان توجد مواقف قد تحتاج فيها إلى إرسال قيم إلى فئة عقدة معينة، مثل Run أو Paragraph. أي أنه لا يمكنك الابتعاد تماما عن الصب عند العمل باستخدام Aspose.Words DOM، وهو مركب.
لتقليل الحاجة إلى الإرسال، توفر معظم فئات Aspose.Words خصائص ومجموعات توفر وصولا مكتوبا بشدة. هناك ثلاثة أنماط أساسية للوصول المكتوب:
الخصائص المكتوبة هي مجرد اختصارات مفيدة توفر أحيانا وصولا أسهل من الخصائص العامة الموروثة من Node.ParentNode و CompositeNode.FirstChild.
يوضح مثال التعليمات البرمجية التالية كيفية استخدام الخصائص المكتوبة للوصول إلى عقد شجرة المستندات:
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.