Potongan kode akan menampilkan alert jumlah child node yang dimiliki elemen root.
xmlDoc.load("books.xml");
var x=xmlDoc.documentElement.childNodes;
alert(x.length)
for (i=0;i<x.length;i++)
{
document.write(x[i].nodeType);
document.write("<br />");
}
Pada IE akan melewati text yang membuat node white-space yang dibuat di antara node (misalnya karakter pindah baris), sedangkan di Mozilla tidak demikian. Sedikit contoh script diatas jika anda buka dengan Mozilla maka akan menampilkan elert 9, sedangkan di IE adalah 4.
Untuk melakukan iterasi dari awal sampai akhir dan mengabaikan text node tersebut, cek tipe node-nya. Sebuah elemen node mempunyai tipe 1, sedangkan text node tipe 3 dan comment node mempunyai tipe 8. Untuk melewati text node(white-space), caranya hanya memproses tipe 3 (text node) dan tipe 8 (comment node).
xmlDoc.load("books.xml");
var x=xmlDoc.documentElement.childNodes;
for (var i=0;i<x.length;i++)
{
if ((x[i].nodeType!=3)&&(x[i].nodeType!=8))
{
//tidak memproses text node dan comment node dan document.write(x[i].nodeName);
document.write("<br />");
}
}
Cara terbaik untuk memproses elemen node adalah dengan iterasi dari awal sampai akhir dari child node dan hanya memproses yang bertipe 1:
xmlDoc.load("books.xml");
var x=xmlDoc.documentElement.childNodes;
for (var i=0;i<x.length;i++)
{
if (x[i].nodeType==1)
{
//Process jika elemen node
document.write(x[i].nodeName);
document.write("<br />");
}
0 komentar:
Posting Komentar