Aspose.Words Document Object Model (DOM)

Login Aspose.Words Document Object Model SitemapDOM) adalah representasi dalam dokumen Word. Login Aspose.Words DOM memungkinkan Anda untuk membaca secara programmatik, memanipulasi, dan memodifikasi konten dan memformat dokumen Word.

Bagian ini menjelaskan kelas utama dari Aspose.Words DOM dan hubungan mereka. Dengan menggunakan Aspose.Words DOM Kelas, Anda dapat memperoleh akses programmatic ke elemen dokumen dan format.

Buat Dokumen Pohon objek

Ketika dokumen dibaca ke dalam Meme it Aspose.Words <span notrans="<span notrans=" DOM"="">Sitemap kemudian pohon objek dibangun dan berbagai jenis elemen dokumen sumber memiliki mereka sendiri DOM objek pohon dengan berbagai properti.

Membangun Dokumen Nodes Pohon

Sitemap Aspose.Words membaca dokumen Word ke dalam memori, itu menciptakan objek dari berbagai jenis yang mewakili berbagai elemen dokumen. Setiap menjalankan teks, paragraf, tabel, atau bagian adalah node, dan bahkan dokumen itu sendiri adalah sebuah node. Aspose.Words mendefinisikan kelas untuk setiap jenis node dokumen.

Pohon dokumen di Aspose.Words mengikuti Pola Desain Komposit:

  • Semua kelas node akhirnya berasal dari Meme it Node kelas, yang merupakan kelas dasar dalam Aspose.Words Document Object ModelSitemap
  • Tidak ada yang dapat mengandung node lain, misalnya, Section Sitemap Paragraph, Login CompositeNode kelas, yang pada gilirannya berasal dari Meme it Node Sitemap

Diagram yang disediakan di bawah menunjukkan warisan antara kelas node dari Aspose.Words Document Object Model SitemapDOMSitemap Nama kelas abstrak di Italics.

aspose-words-dom

Mari kita lihat contoh. Gambar berikut menunjukkan Microsoft Word dokumen dengan berbagai jenis konten.

document-example

Saat membaca dokumen di atas ke Aspose.Words DOM, pohon benda diciptakan, seperti yang ditunjukkan dalam skema di bawah ini.

document-example-dom

Document, Section, Paragraph, Table, Shape, Run, dan semua elips lain pada diagram Aspose.Words objek yang mewakili unsur-unsur dokumen Word.

Sitemap Node Login

Walaupun Node kelas cukup untuk membedakan node yang berbeda dari satu sama lain, Aspose.Words Sitemap NodeType enumerasi untuk menyederhanakan beberapa API tugas, seperti memilih node dari jenis tertentu.

Jenis setiap node dapat diperoleh menggunakan NodeType Login Properti ini mengembalikan NodeType Nilai numerasi. Misalnya, simpul paragraf yang diwakili oleh Paragraph kelas kembali NodeTypeSitemapParagraph, dan node tabel yang diwakili oleh Table kelas kembali NodeTypeSitemapTableSitemap

Contoh berikut menunjukkan bagaimana untuk mendapatkan jenis simpul menggunakan NodeType Sitemap

Navigasi Pohon Dokumen

Aspose.Words mewakili dokumen sebagai pohon node, yang memungkinkan Anda untuk menavigasi antara node. Bagian ini menjelaskan cara menjelajahi dan menavigasi pohon dokumen di Aspose.WordsSitemap

Ketika Anda membuka dokumen sampel, disajikan sebelumnya, di Dokumen Explorer, pohon node muncul persis seperti itu diwakili Aspose.WordsSitemap

document-in-document-explorer

Hubungan Node Dokumen

Node di pohon memiliki hubungan antara mereka:

  • Sebuah node yang mengandung node lain adalah parent.
  • Login Node yang terkandung dalam node induk adalah child. Node anak orang tua yang sama sibling Login
  • Sitemap root Login Document Login

Node yang dapat mengandung node lain berasal dari CompositeNode kelas, dan semua node akhirnya berasal dari Meme it Node Sitemap Kelas dasar dua ini memberikan metode dan sifat umum untuk navigasi dan modifikasi struktur pohon.

Diagram objek UML berikut menunjukkan beberapa node dokumen sampel dan hubungan mereka satu sama lain melalui induk, anak, dan sifat saudara:

document-nodes-relationships

Dokumen adalah Pemilik Node

Sebuah node selalu milik dokumen tertentu, bahkan jika itu baru saja diciptakan atau dihapus dari pohon, karena struktur berukuran dokumen penting seperti gaya dan daftar disimpan dalam Document Login Misalnya, tidak mungkin untuk memiliki Meme it Paragraph tanpa Document karena setiap paragraf memiliki gaya yang ditetapkan secara global untuk dokumen. Aturan ini digunakan ketika membuat node baru. Menambahkan baru Paragraph langsung ke DOM mengharuskan objek dokumen yang dilewatkan ke konstruktor.

Saat membuat paragraf baru menggunakan DocumentBuilder, pembangun selalu memiliki Document kelas terkait dengannya melalui Meme it DocumentBuilder.Document Login

Contoh kode berikut menunjukkan bahwa ketika membuat node, dokumen yang akan memiliki node selalu didefinisikan:

Orang tua Node

Setiap node memiliki orang tua yang ditentukan oleh ParentNode Login A node tidak memiliki node induk, yaitu, ParentNode adalah null, dalam kasus berikut:

  • Login Node telah dibuat dan belum ditambahkan ke pohon.
  • Login Node telah dihapus dari pohon.
  • Login Ini adalah akar Document node yang selalu memiliki simpul induk null.

Anda dapat menghapus node dari orang tuanya dengan memanggil Meme it Remove Login Contoh kode berikut menunjukkan cara mengakses node induk:

Node Anak

Cara yang paling efisien untuk mengakses node anak dari CompositeNode Sitemap FirstChild Login LastChild properti yang mengembalikan simpul anak pertama dan terakhir, masing-masing. Jika tidak ada node anak, sifat ini kembali nullSitemap

CompositeNode juga menyediakan ChildNodes koleksi memungkinkan akses yang diindeks atau dihitung ke node anak. Login ChildNodes properti adalah koleksi langsung dari node, yang berarti bahwa setiap kali dokumen diubah, seperti ketika node dihapus atau ditambahkan, ChildNodes koleksi diperbarui secara otomatis.

Jika sebuah node tidak memiliki anak, maka ChildNodes properti kembali koleksi kosong. Anda dapat memeriksa apakah CompositeNode mengandung node anak yang menggunakan HasChildNodes Login

Contoh kode berikut menunjukkan cara menghitung simpul anak langsung dari CompositeNode menggunakan enumerator yang disediakan oleh ChildNodes Sitemap

Contoh kode berikut menunjukkan cara menghitung simpul anak langsung dari CompositeNode menggunakan akses yang diindeks:

Login

Anda dapat memperoleh node yang segera sebelumnya atau mengikuti node tertentu menggunakan PreviousSibling Login NextSibling properti, masing-masing. Jika sebuah node adalah anak terakhir dari orang tuanya, maka NextSibling properti nullSitemap Sebaliknya, jika node adalah anak pertama orang tuanya, PreviousSibling properti nullSitemap

Contoh kode berikut menunjukkan cara untuk secara efisien mengunjungi semua simpul anak langsung dan tidak langsung dari simpul komposit:

Akses ke Anak dan Orang Tua Nodes

Sejauh ini, kami telah membahas sifat yang mengembalikan salah satu jenis dasar – Node Sitemap CompositeNodeSitemap Tapi kadang-kadang ada situasi di mana Anda mungkin perlu untuk melemparkan nilai ke kelas node tertentu, seperti Run Sitemap ParagraphSitemap Itu, Anda tidak bisa benar-benar pergi dari casting ketika bekerja dengan Meme it Aspose.Words DOM, yang komposit.

Untuk mengurangi kebutuhan untuk pengecoran, sebagian besar Aspose.Words Kelas menyediakan properti dan koleksi yang memberikan akses yang sangat berjenis. Ada tiga pola dasar akses ketik:

Properti yang diketik hanya berguna pintas yang kadang-kadang memberikan akses yang lebih mudah daripada sifat generik yang diwariskan dari Node.ParentNode Login CompositeNode.FirstChildSitemap

Contoh kode berikut menunjukkan bagaimana menggunakan sifat berjenis untuk mengakses node dari pohon dokumen: