Akses Node DOM XML
Dengan DOM, Anda dapat mengakses setiap node di dalam dokumen XML.
Akses node
Anda dapat mengakses node dengan tiga cara:
- Dengan menggunakan metode getElementsByTagName()
- Dengan melooping (menggali) pohon node
- Dengan memanfaatkan hubungan antar node dalam pohon node
Metode getElementsByTagName()
getElementsByTagName()
Mengembalikan semua elemen dengan nama tag yang ditentukan.
Sintaks
node.getElementsByTagName("tagname");
Contoh
Contoh di bawah mengembalikan semua elemen <title> di bawah x:
x.getElementsByTagName("title");
Perhatikan, contoh di atas hanya mengembalikan elemen <title> di bawah x. Untuk mengembalikan semua elemen <title> di dalam dokumen XML, gunakan:
xmlDoc.getElementsByTagName("title");
Di sini,xmlDoc
adalah dokumen sendiri (node dokumen).
Daftar node DOM
getElementsByTagName()
方法返回节点列表(node list)。节点列表是节点的数组。
Method ini mengembalikan daftar node (node list). Daftar node adalah array dari node.
x = xmlDoc.getElementsByTagName("title");
Dapat diakses melalui nomor indeks di x. Jika ingin mengakses elemen <title> ketiga, Anda dapat menulis seperti ini:
y = x[2];Keterangan:
Indeks dimulai dari 0.
Anda dapat menggunakan
Panjang daftar node DOM
Properti untuk menentukan panjang daftar node list (jumlah node). Anda dapat menggunakan
length
Contoh
Properti untuk mengulangi daftar node list: for (i = 0; i < x.length; i++) { var x = xmlDoc.getElementsByTagName("title"); }
// Di tempat ini dapat menulis kode untuk mengolah setiap node
Node tipe di XML dokumen documentElement
Properti adalah root node.
Properti node adalah nodeName
Properti adalah nama node.
Properti node adalah nodeType
Properti adalah tipe node.
Anda akan belajar tentang properti node lebih lanjut di bab berikutnya dalam tutorial ini.
Pengulangan node
Kode di bawah ini mengulangi pengelompokan node anak root node (juga node elemen):
Contoh
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { // Process only element nodes (type 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Pengertian contoh:
- Dengan asumsi bahwa Anda sudah menempatkan "books.xml"Memuat ke
xmlDoc
- Mengambil node anak dari root element (xmlDoc)
- 检查每个子节点的节点类型。如果节点类型为 "
1
", maka adalah node elemen - Jika node adalah node elemen, tampilkan nama node
Navigasi hubungan node
Kode di bawah ini menggunakan hubungan node untuk navigasi di dalam pohon node:
Contoh
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { // Hanya mengolah node elemen (tipe 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Pengertian contoh:
- Dengan asumsi bahwa Anda sudah menempatkan "books.xml"Memuat ke
xmlDoc
- Mengambil node anak dari elemen pertama book
- 将 "y" 变量设置为第一个 book 元素的第一个子节点
- 对于每个子节点(从第一个子节点 "
y
" 开始): - 检查每个子节点的节点类型。如果节点类型为 "
1
",则它是元素节点 - 如果是元素节点,则输出该节点的名称
- 将 "
y
" 变量设置为下一个同级节点,并再次运行循环