ວິທິການ XPath

XPath ສາມາດໃຊ້ຄຳລະບຸສາຍຕາວິດໃນເອກະສານ XML ເພື່ອເລືອກຫົວອອກຫົວຫຼືຫົວອອກຫົວຈຳນວນ. ຫົວອອກຫົວແມ່ນຖືກເລືອກຜ່ານຕາວິດ (path) ຫຼື step.

ເອກະສານ XML ພາຍຸປະກາດ

ພວກເຮົາຈະໃຊ້ເອກະສານ XML ດັ່ງລຽງ.

<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>
<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>
</bookstore>

ເລືອກຫົວອອກຫົວ

XPath ສາມາດໃຊ້ຄຳລະບຸສາຍຕາວິດໃນເອກະສານ XML ເພື່ອເລືອກຫົວອອກຫົວ. ຫົວອອກຫົວແມ່ນຖືກເລືອກຜ່ານຕາວິດຫຼື step.

下面列出了最有用的路径表达式:

ທາງການການຊີ້ ການອະທິບາຍ
nodename ຄົ້ນຫາຫຼັກຊະນະທີ່ເປັນລູກຂອງຫຼັກດັ່ງກ່າວ.
/ ຄົ້ນຫາຫຼັກທີ່ເປັນຫຼັກຫຼັງຫຼັກສະຫຼັບ.
// ຈາກຫຼັກທີ່ກຳນົດການເລືອກຢູ່ບ່ອນປະຈຸບັນຕິດຕາມຫຼັກໃນແຫຼມບັນຊີທີ່ບໍ່ຄິດຂຶ້ນຫຼັງລັດສະນະຂອງຫຼັກຫຼັງຈາກຫຼັກທີ່ກຳນົດການເລືອກຄິດຂຶ້ນຫຼັງລັດສະນະຂອງຫຼັກຫຼັງ.
. ຄົ້ນຫາຫຼັກປະຈຸບັນ。
.. ຄົ້ນຫາຫຼັກພໍ່ຂອງຫຼັກປະຈຸບັນ。
@ ຄົ້ນຫາຄຸນຄ່າ。

ຕົວຢ່າງ

ໃນຕາຕະລາງດັ່ງລຽງນີ້,ພວກເຮົາໄດ້ລາຍງານທາງການການຊີ້ທີ່ມີຄຸນຄ່າຫຼືຜົນຂອງທາງການການຊີ້。

ຄຳສັບສິນ ຜົນການຄຸ້ມຂັບ
bookstore ຄົ້ນຫາຫຼັກຊະນະທີ່ເປັນລູກຂອງ bookstore。
/bookstore

ຄົ້ນຫາຫຼັກ bookstore。

ຄວາມຄິດ: ຖ້າທາງການການຊີ້ເລີ່ມຈາກແສງຄວາມ /, ທາງການການຊີ້ຈະສະເໜີຫົນທາງມາຫຼັກທີ່ມີຄຸນຄ່າຫາກສະເພາະ.

bookstore/book ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຂອງ bookstore。
//book ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຂອງທີ່ຢູ່ບ່ອນຫຼັງ bookstore ທີ່ບໍ່ຄິດຂຶ້ນຫຼັງລັດສະນະຂອງປະກອບ bookstore。
bookstore//book ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຂອງ bookstore ທີ່ຢູ່ບ່ອນຫຼັງ bookstore ທີ່ບໍ່ຄິດຂຶ້ນຫຼັງລັດສະນະຂອງປະກອບ bookstore。
//@lang ຄົ້ນຫາປະກອບຂອງຄຸນຄ່າ lang。

ຄຳອອກ (Predicates)

ຄຳອອກຕັ້ງໃຈການຊີ້ຫຼັກຂອງຫຼັກທີ່ມີຄຸນຄ່າຫາກສະເພາະຫຼືທີ່ມີຄຸນຄ່າຫາກຈະກຳນົດຄຸນຄ່າຫາກວ່ານັ້ນ。

ຄຳອອກຖືກຈອງໃນກອງສະເປນ。

ຕົວຢ່າງ

ໃນຕາຕະລາງດັ່ງລຽງນີ້,ພວກເຮົາໄດ້ລາຍງານປະກອບທາງການການຊີ້ແລະຜົນຂອງທາງການການຊີ້ທີ່ມີຄຳອອກ。

ຄຳສັບສິນ ຜົນການຄຸ້ມຂັບ
/bookstore/book[1] ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຊະນະທີ່ທຳອິດຂອງ bookstore。
/bookstore/book[last()] ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຊະນະທີ່ຫຼັງຈາກ bookstore。
/bookstore/book[last()-1] ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຊະນະທີ່ຫຼັງຈາກທີ່ຫຼັງສອງຂອງ bookstore。
/bookstore/book[position()<3] ຄົ້ນຫາປະກອບ book ທີ່ເປັນລູກຊະນະທີ່ທຳອິດສອງຂອງ bookstore。
//title[@lang] ຄົ້ນຫາປະກອບ title ທີ່ມີຄຸນຄ່າຂອງຂໍ້ມູນ lang。
//title[@lang='eng'] ຄົ້ນຫາປະກອບ title ທີ່ມີຄຸນຄ່າຂອງໂຄງລະບຸ lang ພາຍໃນ eng。
/bookstore/book[price>35.00] ຄົ້ນຫາປະກອບ bookstore ທີ່ມີປະກອບ book ທີ່ມີຄຸນຄ່າຂອງປະກອບ price ເພີ່ມຫຼາຍກວ່າ 35.00。
/bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

选取未知节点

XPath 通配符可用来选取未知的 XML 元素。

ການອະນຸມັດ ການອະທິບາຍ
* ຕິດຕັ້ງທຸກວັດຖຸສິນລະພາບ.
@* ຕິດຕັ້ງທຸກວັດຖຸຄວາມລວມ.
node() ຕິດຕັ້ງທຸກຕົວຈຸດ.

ຕົວຢ່າງ

ໃນຕາມການຕາງໜ້າດ້ານລາຍການພາກສ່ວນໃຫຍ່, ພວກເຮົາລະບຸບຳນວຍຄວາມຄຸ້ມຂັບພາກສ່ວນລາຍການພາກສ່ວນນ້ອຍ, ແລະຜົນການຄຸ້ມຂັບຂອງພາກສ່ວນລາຍການພາກສ່ວນນ້ອຍ.

ຄຳສັບສິນ ຜົນການຄຸ້ມຂັບ
/bookstore/* ເລືອກທຸກລູກທຸກວັດຖຸຂອງວັດຖຸ bookstore.
//* ເລືອກທຸກວັດຖຸໃນເອກະສານ.
//title[@*] ເລືອກທຸກວັດຖຸ title ທີ່ມີຄວາມລວມ.

ເລືອກຫົວຂໍ້ພາກສ່ວນຫຼາຍ

ທ່ານສາມາດເລືອກຫົວຂໍ້ພາກສ່ວນຫຼາຍຫຼາຍໄດ້ຜ່ານການໃຊ້ສິ່ງສະແດງ “|”.

ຕົວຢ່າງ

ໃນຕາມການຕາງໜ້າດ້ານລາຍການພາກສ່ວນໃຫຍ່, ພວກເຮົາລະບຸບຳນວຍຄວາມຄຸ້ມຂັບພາກສ່ວນລາຍການພາກສ່ວນນ້ອຍ, ແລະຜົນການຄຸ້ມຂັບຂອງພາກສ່ວນລາຍການພາກສ່ວນນ້ອຍ.

ຄຳສັບສິນ ຜົນການຄຸ້ມຂັບ
//book/title | //book/price ຄຸ້ມຂັບທຸກວັດຖຸ title ແລະ price ຂອງວັດຖຸ book.
//title | //price ຄຸ້ມຂັບທຸກວັດຖຸ title ແລະ price ໃນເອກະສານ.
/bookstore/book/title | //price ຄຸ້ມຂັບທຸກວັດຖຸ title ຂອງວັດຖຸ bookstore ແລະທຸກວັດຖຸ price ໃນເອກະສານ.