Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
مدل Aspose.Words Document Object (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 {#get-a-node-type}دریافت کنیداگرچه کلاس Node به اندازه کافی برای تمایز گره های مختلف از یکدیگر کافی است، Aspose.Words برای ساده سازی برخی از وظایف API، مانند انتخاب گره های یک نوع خاص، شمارش NodeType را فراهم می کند.
نوع هر گره را می توان با استفاده از ویژگی 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 توصیف می کند.
وقتی نمونه سند را که قبلا در Document Explorer ارائه شده است باز می کنید، درخت گره دقیقا همان طور که در Aspose.Words نشان داده شده است ظاهر می شود.
گره های درخت رابطه ای بین آنها دارند:
گره هایی که می توانند شامل گره های دیگر باشند از کلاس CompositeNode مشتق می شوند و در نهایت همه گره ها از کلاس Node مشتق می شوند. این دو کلاس پایه روش ها و خواص مشترک برای ناوبری و اصلاح ساختار درخت را فراهم می کنند.
نمودار شیء UML زیر چندین گره از سند نمونه و روابط آنها با یکدیگر را از طریق ویژگی های والدین، کودک و خواهر و برادر نشان می دهد:
یک گره همیشه متعلق به یک سند خاص است، حتی اگر تازه ایجاد شده یا از درخت حذف شده باشد، زیرا ساختارهای حیاتی در سراسر سند مانند سبک ها و لیست ها در گره Document ذخیره می شوند. به عنوان مثال، داشتن Paragraph بدون Document امکان پذیر نیست زیرا هر پاراگراف دارای یک سبک اختصاص داده شده است که در سطح جهانی برای سند تعریف شده است. این قانون هنگام ایجاد هر گره جدید استفاده می شود. اضافه کردن یک Paragraph جدید به طور مستقیم به DOM نیاز به یک شی سند به سازنده دارد.
هنگام ایجاد یک پاراگراف جدید با استفاده از DocumentBuilder، سازنده همیشه یک کلاس Document دارد که از طریق ویژگی DocumentBuilder.Document به آن متصل است.
مثال کد زیر نشان می دهد که هنگام ایجاد هر گره، یک سند که مالک گره خواهد بود همیشه تعریف شده است:
هر گره دارای یک والد است که توسط ویژگی ParentNode مشخص شده است. یک گره هیچ گره اصلی ندارد، یعنی ParentNode در موارد زیر null است:
شما می توانید یک گره را از والد خود با فراخوانی روش Remove حذف کنید.مثال کد زیر نشان می دهد که چگونه به گره اصلی دسترسی پیدا کنید:
کارآمدترین راه برای دسترسی به گره های فرزند یک CompositeNode از طریق ویژگی های FirstChild و LastChild است که به ترتیب گره های فرزند اول و آخر را باز می گرداند. اگر گره های کودک وجود نداشته باشد، این ویژگی ها null باز می گردند.
CompositeNode
اگر یک گره فرزند نداشته باشد، پس ویژگی ChildNodes مجموعه خالی را باز می گرداند. شما می توانید با استفاده از ویژگی HasChildNodes بررسی کنید که آیا CompositeNode شامل هر گره کودک است یا خیر.
مثال کد زیر نشان می دهد که چگونه گره های کودک فوری یک 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.