ກົດລະບຽບ XPath

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

XML 实例文档

我们将在下面的例子中使用这个 XML 文档。




  Harry Potter
  29.99


  Learning XML
  39.95


选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

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

表达式 ການອະທິບາຍ
nodename 选取此节点的所有子节点。
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。

ບົດຕົວ

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

ຄຳສັ່ງຖານ ຜົນງານ
bookstore ເລືອກຜູ້ລວມທັງໄວ້ທີ່ຢູ່ພາຍໃນ bookstore.
/bookstore

ເລືອກຜູ້ລວມ root bookstore.

ຄວາມຄິດ: ຖ້າຕາມການເລີ່ມຕົ້ນດ້ວຍກາກຖານ ( / ), ຕາມການນັ້ນຈະຈະສະແດງວ່າຕາມການທາງສະຖານະສະພາບສະຖານະສະພາບສະຖານະສະພາບສະຖານະສະພາບ.

bookstore/book ເລືອກຜູ້ລວມ book ທັງໄວ້ທີ່ຢູ່ພາຍໃນ bookstore.
//book ເລືອກຜູ້ລວມ book ທັງໄວ້ທີ່ຢູ່ໃນເອກະສານ.
bookstore//book ຕິດຕາມຜູ້ລວມຂອງ bookstore ທີ່ມີຜູ້ລວມ book ທັງໄວ້ທີ່ຫຼາຍຫຼາຍທີ່ຢູ່ 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] ເລືອກປະເພດ book ທຸກນັບ ທີ່ມີການວາງຕັ້ງ bookstore ແລະ ການວາງຕັ້ງ price ທີ່ຫຼາຍກວ່າ 35.00.
/bookstore/book[price>35.00]/title ເລືອກປະເພດ book ທຸກນັບ title ທີ່ມີການວາງຕັ້ງ bookstore ແລະ ການວາງຕັ້ງ price ທີ່ຫຼາຍກວ່າ 35.00.

ເລືອກຫຼັກທີ່ບໍ່ຮູ້ຄວາມອາກາດ

ສິ່ງທີ່ຫຼົງຫຼາຍ XPath ສາມາດເລືອກຫຼັກ XML ທີ່ບໍ່ຮູ້ຄວາມອາກາດ.

ສິ່ງທີ່ຫຼົງຫຼາຍ ການອະທິບາຍ
* ການຫັດຕັດຂອງຫຼັກອາກາດ.
@* ການຫັດຕັດຂອງຫຼັກອາກາດທີ່ມີປະສົມປະກອບ.
node() ການຫັດຕັດຂອງຫຼັກອາກາດ.

ບົດຕົວ

ໃນຕາຕະລາງດ້ານລຸ່ມທີ່ພາຍຫຼັງ ພວກເຮົາລະບຸບຳສັນຍາການສັ່ງຖານ ແລະ ຜົນງານຂອງບຳສັນຍາການສັ່ງຖານ:

ຄຳສັ່ງຖານ ຜົນງານ
/bookstore/* ເລືອກປະເພດເພີ່ມຕໍ່ bookstore.
//* ເລືອກປະເພດທຸກຢ່າງໃນເນື້ອມ.
//title[@*] ເລືອກປະເພດ title ທຸກນັບທີ່ມີປະສົມປະກອບ.

ເລືອກຫຼາຍສາຍ

ຜ່ານການໃຊ້ຄຳໂຄສະນາ “|” ໃນຄຳສັ່ງຖານສາມາດເລືອກຫຼາຍສາຍ.

ບົດຕົວ

ໃນຕາຕະລາງດ້ານລຸ່ມທີ່ພາຍຫຼັງ ພວກເຮົາລະບຸບຳສັນຍາການສັ່ງຖານ ແລະ ຜົນງານຂອງບຳສັນຍາການສັ່ງຖານ:

ຄຳສັ່ງຖານ ຜົນງານ
//book/title | //book/price ເລືອກປະເພດ book ທຸກນັບ title ແລະ price.
//title | //price 选取文档中的所有 title 和 price 元素。
/bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。