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