Isi kandungan:
Video: Week 9, continued 2024
Dikotomi antara pemikiran linear dan pemikiran holistik memisahkan (masing-masing) SAX dari DOM.
SAX (API Mudah untuk XML) merawat dokumen XML secara linear, bekerja melalui sekeping dokumen secara sekeping, dari awal hingga akhir. Tetapi dengan DOM (Model Objek Dokumen), anda melompat masuk dan melihat keseluruhan dokumen. Sedikit kemudian, anda zum masuk pada elemen akar, dan kemudian memusatkan lebih dekat pada elemen dalam elemen akar. Dalam sesetengah keadaan, melompat masuk adalah apa yang perlu anda lakukan.
Node DOM
Dengan DOM, anda memikirkan dokumen XML sebagai mempunyai beberapa nod . Contoh nod termasuk elemen, atribut, komen, dan aksara di antara sepasang tag permulaan dan akhir. Dokumen XML keseluruhan adalah nod sendiri. Secara keseluruhannya, dokumen XML boleh mempunyai 12 jenis nod yang berbeza.
Nodus pokok
Diambil bersama, semua nod DOM dalam dokumen XML membentuk pokok. Sebagai contoh, ambil dokumen dalam Penyenaraian 1. Pokok DOM dokumen ini kelihatan seperti pokok yang ditunjukkan dalam Rajah 1.
Penyenaraian 1: Kelab Pencinta Anchovy
Pengasas, Presiden, Setiausaha, Pengurus Publisiti
Pokok ini mempunyai sebelas nod. Untuk menghitungnya, mulakan dengan mengira cabang pokok (mudah dipaparkan dalam Rajah 1). Kemudian hitung nama pertama ahli = "Herbert" cabang untuk kali kedua. (Cawangan ini mempunyai dua nod DOM di atasnya. Unsur yang bernama Ahli adalah nod, dan atribut elemen atribut = "Herbert" adalah nod.)
Satu risalah pada pokok
Terdapat beberapa perkara yang akan anda temui dengan menatap pokok dalam Rajah 1.
- Sesetengah nod adalah anak-anak nod lain. Sebagai contoh, nod ahli adalah anak nod AnchovyLoversClub. Itu kerana, dalam Penyenaraian 1, elemen Anggota bersarang di dalam elemen AncoverLoversClub.Dengan cara yang sama, nod Berdiri adalah anak nod Anggota. Analogi keluarga ini berterusan dan seterusnya. Node ahli adalah induk nod Berdiri, dan AncoverLoversClub adalah induk nod Anggota.
- Dokumen keseluruhan adalah nod. Ini adalah titik penting, dan mudah dilupakan. Dalam Penyenaraian 1, elemen akar dokumen ialah AnchovyLoversClub. Tetapi dalam Rajah 1, nama AnchovyLoversClub tidak berada di bahagian atas pokok. Sebaliknya, perkataan #document berada di bahagian atas pokok.Nod puncak pohon DOM mewakili keseluruhan dokumen XML. Kesalahan berlaku apabila pengaturcara berfikir bahawa elemen akar dokumen memulakan pokok itu.(Tidak.)
- Komen dan kepingan teks adalah nod. Dalam Rajah 1, komen adalah simpul nod dokumen. Itu kerana, dalam Penyenaraian 1, ulasan itu adalah sebahagian daripada dokumen itu. Ulasan tidak bersarang di dalam mana-mana elemen dokumen.Sekali lagi, kita memainkan silsilah. Kami mengatakan bahawa nod # dokument mempunyai dua anak - nod komen dan nada AnchovyLoversClub. Kedua nod ini - komen dan AnchovyLoversClub - dipanggil adik-beradik .Juga dalam Rajah 1, Teks Pengasas, Presiden, Setiausaha, Pengurus Publisiti adalah sebahagian daripada nod. Dalam Penyenaraian 1, teks Pengasas, Presiden, Setiausaha, Pengurus Publisiti berada di dalam elemen Berdiri. Jadi, dalam Rajah 1, nod teks ini adalah anak nod Berdiri.
- Bahkan teks tidak dapat dijawab adalah sebahagian daripada nod. Menurut Rajah 1, nod AnchovyLoversClub mempunyai tiga nod anak langsung - dua nod berlabel #text, dan nod lain dilabel Ahli. Itu kerana, sejauh yang berkenaan DOM, nod AnchovyLoversClub mempunyai tiga perkara di dalamnya.
kembali kapal dan tiga kosong
Elemen anggota
kembali kereta
-
Keadaan digambarkan dalam Rajah 2.
-
kanak-kanak nod ahli - dua buah ruang putih dan satu elemen Berdiri - semua adik beradik.Sekarang perhatikan titik dan [cr] dalam Rajah 1 dan 2. Dalam gambarajah pokok, titik mewakili ruang kosong, dan [cr] mewakili pulangan kereta. Dengan DOM, semua ruang kosong yang tidak dikenali antara tag mula AnchovyLoversClub dan tag mula Ahli membentuk nod. Bermula dengan sudut pendakap yang menamatkan tag mula AnchovyLoversClub, anda pergi ke baris seterusnya, dan kemudian anda mempunyai tiga ruang kosong sebelum pendakap sudut yang membuka teg permulaan Ahli. Semua benda itu adalah nod DOM.
- Tag akhir bukan nod. Dengan SAX, anda mungkin berfikir dalam hal memulakan elemen Ahli, dan kemudian mengakhiri elemen Ahli. Di DOM, anda tidak fikir cara ini. Sebaliknya, anda melawat elemen Ahli sekali sahaja. Dalam lawatan itu, anda lawati elemen Berdiri dan beberapa teks. DOM tidak mempunyai kaedah yang bersamaan dengan kaedah endElement SAX.