DOM tugunlariga murojaat
DOM yordamida XML hujjatdagi har bir tugunga murojaat qilishingiz mumkin.
Tugunlarga murojaat qilish
Tugunga uch xil usulda murojaat qilishingiz mumkin:
- getElementsByTagName() metodidan foydalanib
- Tugunlar daraxtini sikl bilan aylanib chiqib (traversing)
- Tugunlar o‘rtasidagi munosabatlardan foydalanib, tugunlar daraxti bo‘ylab harakatlanib
getElementsByTagName() metodi
getElementsByTagName() ko‘rsatilgan teg nomiga ega barcha elementlarni qaytaradi.
Sintaksis
node.getElementsByTagName("tagname");Misol
Quyidagi misol x elementi ostidagi barcha <title> elementlarini qaytaradi:
x.getElementsByTagName("title");E’tibor bering, yuqoridagi misol faqat x tuguni ostidagi <title> elementlarini qaytaradi. XML hujjatdagi barcha <title> elementlarini qaytarish uchun quyidagidan foydalaning:
xmlDoc.getElementsByTagName("title");bu yerda xmlDoc — hujjatning o‘zi (hujjat tuguni).
DOM tugunlar ro‘yxati
getElementsByTagName() metodi tugunlar ro‘yxatini (node list) qaytaradi. Tugunlar ro‘yxati — tugunlar massivi.
x = xmlDoc.getElementsByTagName("title");x dagi <title> elementlariga indeks raqami orqali murojaat qilish mumkin. Uchinchi <title> elementiga murojaat qilish uchun quyidagicha yozishingiz mumkin:
y = x[2];Eslatma: Indeks 0 dan boshlanadi.
DOM tugunlar ro‘yxati uzunligi
length xususiyati tugunlar ro‘yxatining uzunligini (tugunlar sonini) belgilaydi.
length xususiyatidan foydalanib, tugunlar ro‘yxatini sikl bilan aylanib chiqishingiz mumkin:
Misol
var x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
// do something for each node
}
O‘zingiz sinab ko‘ring »
Tugun turlari
XML hujjatning documentElement xususiyati — ildiz tugun.
Tugunning nodeName xususiyati — tugunning nomi.
Tugunning nodeType xususiyati — tugunning turi.
Tugun xususiyatlari haqida ushbu darslikning keyingi bobida ko‘proq o‘rganasiz.
Tugunlarni aylanib chiqish
Quyidagi kod ildiz tugunning element tugunlari ham bo‘lgan bola tugunlarini sikl bilan aylanib chiqadi:
Misol
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>";
}
}
O‘zingiz sinab ko‘ring »
Misol tushuntirilishi:
- Faraz qilaylik, "books.xml" fayli xmlDoc’ga yuklangan
- Ildiz elementning (xmlDoc) bola tugunlarini oling
- Har bir bola tugun uchun tugun turini tekshiring. Agar tugun turi "1" bo‘lsa, u element tuguni hisoblanadi
- Agar tugun element tuguni bo‘lsa, uning nomini chiqaring
Tugunlar munosabatlari bo‘ylab harakatlanish
Quyidagi kod tugunlar munosabatlaridan foydalanib tugunlar daraxti bo‘ylab harakatlanadi:
Misol
x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++) {
// Process only element nodes (type 1)
if (y.nodeType == 1) {
txt += y.nodeName + "<br>";
}
y = y.nextSibling;
}
O‘zingiz sinab ko‘ring »
Misol tushuntirilishi:
- Faraz qilaylik, "books.xml" fayli xmlDoc’ga yuklangan
- Birinchi book elementining bola tugunlarini oling
- "y" o‘zgaruvchisiga birinchi book elementining birinchi bola tugunini o‘zlashtiring
- Har bir bola tugun uchun (birinchi bola tugun "y"dan boshlab):
- Tugun turini tekshiring. Agar tugun turi "1" bo‘lsa, u element tuguni hisoblanadi
- Agar tugun element tuguni bo‘lsa, uning nomini chiqaring
- "y" o‘zgaruvchisiga keyingi qo‘shni tugunni o‘zlashtiring va siklni yana bajaring
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
