akses DOM
XML DOM - Nod Akses
DOM memberikan anda akses kepada setiap nod dalam dokumen XML.
Cuba - Contoh
Contoh berikut menggunakan fail XML books.xml .
Fungsi loadXMLDoc(), terletak dalam JavaScript luaran, digunakan untuk memuatkan fail XML.
Gunakan nombor indeks dalam senarai nod untuk mengakses nod
Contoh ini menggunakan kaedah getElementsByTagname() untuk mendapatkan elemen <title> ketiga dalam "books.xml".
Gunakan atribut panjang untuk melintasi nod
Contoh ini menggunakan atribut panjang untuk melintasi semua elemen <title>
Lihat jenis nod elemen
Contoh ini menggunakan atribut nodeType untuk mendapatkan jenis nod elemen akar dalam "books.xml".
Nod elemen traverse
Contoh ini menggunakan atribut nodeType untuk memproses nod elemen dalam "books.xml".
Gunakan perhubungan nod untuk merentasi nod elemen
Contoh ini menggunakan atribut nodeType dan atribut nextSibling untuk memproses nod elemen dalam "books.xml".
Mengakses Nod
Anda boleh mengakses nod dalam tiga cara:
1 Dengan menggunakan kaedah getElementsByTagName().
2. Dengan menggelung (merentasi) pokok nod.
3. Navigasi dalam pepohon nod dengan memanfaatkan perhubungan nod.
kaedah getElementsByTagName()
getElementsByTagName() mengembalikan semua elemen dengan nama teg yang ditentukan.
Sintaks
Instance
Contoh berikut mengembalikan semua <title> elemen di bawah elemen x:
Sila ambil perhatian bahawa perkara di atas Instance hanya mengembalikan elemen <title> Untuk mengembalikan semua <title> elemen dalam dokumen XML, gunakan:
Di sini, xmlDoc ialah dokumen itu sendiri ( nod dokumen).
Senarai nod DOM (Senarai Nod)
kaedah getElementsByTagName() mengembalikan senarai nod. Senarai nod ialah tatasusunan nod.
Kod berikut menggunakan loadXMLDoc() untuk memuatkan "books.xml" ke dalam xmlDoc, dan kemudian menyimpan senarai <title> dalam pembolehubah x:
x=xmlDoc.getElementsByTagName("title");
Elemen <title> dalam x boleh diakses melalui nombor indeks . Untuk mengakses <tajuk> ketiga, anda boleh menulis:
Nota: Indeks bermula dari 0.
Dalam bab seterusnya dalam tutorial ini, anda akan mengetahui lebih lanjut tentang Senarai Nod.
Panjang Senarai Nod DOM Atribut panjang
mentakrifkan panjang senarai nod (iaitu bilangan nod).
Anda boleh mengulangi senarai nod dengan menggunakan atribut panjang:
Instance
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"></script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>
Jalankan instance»
Klik butang "Jalankan Contoh" untuk melihat contoh dalam talian
Penjelasan contoh:
Gunakan loadXMLDoc() untuk memuatkan " books.xml" ke dalam xmlDoc
Dapatkan semua <title> nod elemen
Output nilai nod teks setiap <title> ; elemen
Jenis Nod
Atribut documentElement bagi dokumen XML ialah nod akar. Atribut
nodeNamenod ialah nama nod. Atribut
nodeTypenod ialah jenis nod.
Anda akan mengetahui lebih lanjut tentang sifat nod dalam bab seterusnya tutorial ini.
Cubalah
Nod lintasan
Kod berikut merentasi nod anak nod akar, yang juga nod elemen:
Contoh
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"></script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Process only element nodes (type 1) document.write(x[i].nodeName); document.write("<br>"); } } </script> </body> </html>
Jalankan instance»
Klik butang "Run instance" untuk melihat instance dalam talian
Instance penjelasan:
Gunakan loadXMLDoc() untuk memuatkan "books.xml" ke dalam xmlDoc
Dapatkan nod anak unsur akar
Semak jenis nod setiap nod anak. Jika jenis nod ialah "1", ia adalah nod elemen
Jika ia adalah nod elemen, nama nod ialah output
Perhubungan Nod Navigasi
Kod berikut menavigasi pepohon nod menggunakan perhubungan nod:
Instance
<!DOCTYPE html> <html> <head> <script src="loadxmldoc.js"></script> </head> <body> <script> xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0].childNodes; y=xmlDoc.getElementsByTagName("book")[0].firstChild; for (i=0;i<x.length;i++) { if (y.nodeType==1) {//Process only element nodes (type 1) document.write(y.nodeName + "<br>"); } y=y.nextSibling; } </script> </body> </html>
Run Instance»
Klik butang "Run Example" untuk melihat contoh dalam talian
Gunakan loadXMLDoc() untuk memuatkan "books.xml" ke dalam xmlDoc
Dapatkan nod anak bagi elemen buku pertama
Tetapkan pembolehubah "y" kepada nod anak pertama bagi elemen buku pertama
Untuk setiap nod anak (nod anak pertama bermula dari "y"), semak jenis nod, jika jenis nod ialah "1", ia adalah nod elemen
Jika ia adalah nod elemen, keluarkan nama nod
Tetapkan pembolehubah "y" kepada nod adik beradik seterusnya dan jalankan gelung sekali lagi