DOM tugunlari


XML DOM’ga ko‘ra, XML hujjatdagi hamma narsa tugundir (node):

  • Butun hujjat — hujjat tuguni (document node)
  • Har bir XML elementi — element tuguni
  • XML elementlaridagi matn — matn tugunlari
  • Har bir atribut — atribut tuguni
  • Izohlar — izoh tugunlari

ULASHISH

DOM misoli

Quyidagi XML faylni (books.xml) ko‘rib chiqing:

<?xml version="1.0" encoding="UTF-8"?> <bookstore>   <book category="cooking">     <title lang="en">Everyday Italian</title>     <author>Giada De Laurentiis</author>     <year>2005</year>     <price>30.00</price>   </book>   <book category="children">     <title lang="en">Harry Potter</title>     <author>J K. Rowling</author>     <year>2005</year>     <price>29.99</price>   </book>   <book category="web">     <title lang="en">XQuery Kick Start</title>     <author>James McGovern</author>     <author>Per Bothner</author>     <author>Kurt Cagle</author>     <author>James Linn</author>     <author>Vaidyanathan Nagarajan</author>     <year>2003</year>     <price>49.99</price>   </book>   <book category="web" cover="paperback">     <title lang="en">Learning XML</title>     <author>Erik T. Ray</author>     <year>2003</year>     <price>39.95</price>   </book> </bookstore>

Yuqoridagi XML’dagi ildiz tugun <bookstore> deb nomlangan.

Hujjatdagi boshqa barcha tugunlar <bookstore> ichida joylashgan.

<bookstore> ildiz tuguni 4 ta <book> tugunini o‘z ichiga oladi.

Birinchi <book> tuguni <title>, <author>, <year> va <price> bola tugunlarini o‘z ichiga oladi.

Bola tugunlarning har biri bittadan matn tugunini o‘z ichiga oladi: "Everyday Italian", "Giada De Laurentiis", "2005" va "30.00".



Matn doimo matn tugunlarida saqlanadi

DOM bilan ishlashdagi keng tarqalgan xato — element tuguni matnni o‘z ichiga oladi deb kutish.

Biroq element tugunining matni matn tugunida saqlanadi.

Bu misolda: <year>2005</year>, <year> element tuguni qiymati "2005" bo‘lgan matn tugunini o‘z ichiga oladi.

"2005" <year> elementining qiymati emas!


XML DOM tugunlar daraxti

XML DOM XML hujjatni daraxt tuzilmasi sifatida ko‘radi. Bu daraxt tuzilmasi tugunlar daraxti (node-tree) deb ataladi.

Barcha tugunlarga daraxt orqali murojaat qilish mumkin. Ularning tarkibini o‘zgartirish yoki o‘chirish, shuningdek yangi elementlar yaratish mumkin.

Tugunlar daraxti tugunlar to‘plamini va ular orasidagi bog‘lanishlarni ko‘rsatadi. Daraxt ildiz tugundan boshlanadi va daraxtning eng quyi darajasidagi matn tugunlarigacha tarmoqlanadi:

DOM node tree

Yuqoridagi rasm books.xml XML faylini tasvirlaydi.


Tugunlarning otasi, bolalari va qo‘shnilari

Tugunlar daraxtidagi tugunlar bir-biri bilan ierarxik munosabatda bo‘ladi.

Bu munosabatlarni tavsiflash uchun ota (parent), bola (child) va qo‘shni (sibling) atamalari ishlatiladi. Ota tugunlarning bolalari bo‘ladi. Bir xil darajadagi bolalar qo‘shnilar (aka-uka yoki opa-singillar) deb ataladi.

  • Tugunlar daraxtida eng yuqoridagi tugun ildiz (root) deb ataladi
  • Ildizdan tashqari har bir tugunning aynan bitta ota tuguni bor
  • Tugun istalgan sondagi bolalarga ega bo‘lishi mumkin
  • Barg (leaf) — bolalari yo‘q tugun
  • Qo‘shnilar — otasi bir xil bo‘lgan tugunlar

Quyidagi rasm tugunlar daraxtining bir qismini va tugunlar orasidagi munosabatni tasvirlaydi:

Node tree

XML ma’lumotlari daraxt shaklida tuzilgani sababli, daraxtning aniq tuzilmasini va uning ichidagi ma’lumotlar turini bilmasdan ham uni aylanib chiqish mumkin.

Tugunlar daraxtini aylanib chiqish haqida ushbu darslikning keyingi boblaridan birida ko‘proq o‘rganasiz.


Birinchi bola - oxirgi bola

Quyidagi XML fragmentini ko‘rib chiqing:

<bookstore>   <book category="cooking">     <title lang="en">Everyday Italian</title>     <author>Giada De Laurentiis</author>     <year>2005</year>     <price>30.00</price>   </book> </bookstore>

Yuqoridagi XML’da <title> elementi <book> elementining birinchi bolasi, <price> elementi esa <book> elementining oxirgi bolasi hisoblanadi.

Bundan tashqari, <book> elementi <title>, <author>, <year> va <price> elementlarining ota tuguni hisoblanadi.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!