XPath o‘qlari


ULASHISH

Misol uchun XML hujjat

Quyidagi misollarda biz quyidagi XML hujjatdan foydalanamiz.

<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book>   <title lang="en">Harry Potter</title>   <price>29.99</price> </book> <book>   <title lang="en">Learning XML</title>   <price>39.95</price> </book> </bookstore>

XPath o‘qlari (axes)

O‘q (axis) kontekst (joriy) tugunga nisbatan munosabatni ifodalaydi va daraxtda shu tugunga nisbatan tugunlarni topish uchun ishlatiladi.

O‘q nomi (AxisName) Natija
ancestor Joriy tugunning barcha ajdodlarini (otasi, bobosi va h.k.) tanlaydi
ancestor-or-self Joriy tugunning barcha ajdodlarini (otasi, bobosi va h.k.) hamda joriy tugunning o‘zini tanlaydi
attribute Joriy tugunning barcha atributlarini tanlaydi
child Joriy tugunning barcha bolalarini tanlaydi
descendant Joriy tugunning barcha avlodlarini (bolalari, nevaralari va h.k.) tanlaydi
descendant-or-self Joriy tugunning barcha avlodlarini (bolalari, nevaralari va h.k.) hamda joriy tugunning o‘zini tanlaydi
following Hujjatda joriy tugunning yopuvchi tegidan keyin keladigan hamma narsani tanlaydi
following-sibling Joriy tugundan keyingi barcha qo‘shnilarni tanlaydi
namespace Joriy tugunning barcha nomlar fazosi tugunlarini tanlaydi
parent Joriy tugunning otasini tanlaydi
preceding Hujjatda joriy tugundan oldin keladigan barcha tugunlarni ajdodlar, atribut tugunlari va nomlar fazosi tugunlaridan tashqari tanlaydi
preceding-sibling Joriy tugundan oldingi barcha qo‘shnilarni tanlaydi
self Joriy tugunni tanlaydi


Joylashuv yo‘li ifodasi

Joylashuv yo‘li (location path) absolyut yoki nisbiy bo‘lishi mumkin.

Absolyut joylashuv yo‘li slesh ( / ) bilan boshlanadi, nisbiy joylashuv yo‘li esa slesh bilan boshlanmaydi. Ikkala holatda ham joylashuv yo‘li har biri slesh bilan ajratilgan bir yoki bir nechta qadamdan iborat:

An absolute location path: /step/step/... A relative location path: step/step/...

Har bir qadam joriy tugunlar to‘plamidagi tugunlarga nisbatan hisoblanadi.

Qadam quyidagilardan iborat:

  • o‘q (tanlangan tugunlar va joriy tugun o‘rtasidagi daraxtdagi munosabatni belgilaydi)
  • tugun testi (node-test) (o‘q ichidagi tugunni aniqlaydi)
  • nol yoki undan ortiq predikat (tanlangan tugunlar to‘plamini yanada aniqlashtirish uchun)

Joylashuv qadamining sintaksisi:

axisname::nodetest[predicate]

Misollar

Misol Natija
child::book Joriy tugunning bolalari bo‘lgan barcha book tugunlarini tanlaydi
attribute::lang Joriy tugunning lang atributini tanlaydi
child::* Joriy tugunning barcha bola elementlarini tanlaydi
attribute::* Joriy tugunning barcha atributlarini tanlaydi
child::text() Joriy tugunning barcha bola matn tugunlarini tanlaydi
child::node() Joriy tugunning barcha bolalarini tanlaydi
descendant::book Joriy tugunning barcha book avlodlarini tanlaydi
ancestor::book Joriy tugunning barcha book ajdodlarini tanlaydi
ancestor-or-self::book Joriy tugunning barcha book ajdodlarini tanlaydi — agar joriy tugunning o‘zi ham book tuguni bo‘lsa, uni ham
child::*/child::price Joriy tugunning barcha price nevaralarini tanlaydi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!