ຕົວຢ່າງ XPath

ໃນຂອບເຂດນີ້ພວກເຮົາຈະຮຽນຫຼັກຮູບພາບຂອງ XPath ຈາກຕົວຢ່າງ:

ແບບ XML

ພວກເຮົາຈະໃຊ້ໃນຕົວຢ່າງລຸ່ມທີ່ຖືກລົງໃນຕໍ່ໄປ:

"books.xml" :

<?xml version="1.0" encoding="ISO-8859-1"?>
<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">
  <title lang="en">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>
</bookstore>

ກວດສອບ "books.xml" ບັນຊີດັ່ງກ່າວໃນສານບັນຊີຂອງທ່ານ:.

ການລໍາລຽງ XML ບັນຊີ

ທັງໝົດເຄືອມຕະວິກິດສານທົ່ວໄປທີ່ໃຊ້ໄດ້ນຳໃຊ້ XMLHttpRequest ເພື່ອລໍາລຽງ XML ບັນຊີ:

ກົນລະບົບສໍາລັບເຄືອມຕະວິກິດສານທົ່ວໄປທີ່ມີຫຼາຍຫຼາຍບຸກຄົນໃຊ້:

var xmlhttp=new XMLHttpRequest()

ກົນລະບົບສໍາລັບເຄືອມຕະວິກິດສານ Microsoft (IE 5 ແລະ 6):

var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")

ການຄົ້ນຫາຂອງບັນຊີ

ແຕ່ວ່າ, Internet Explorer ແລະບັນດາກົນລະບົບ XPath ອື່ນໆມີການປະຕິບັດທີ່ແຕກຕ່າງກັນ:

ໃນກໍລະນີຂອງພວກເຮົາມີລວມກັບລິຂະສິດທີ່ຈະປະຕິບັດດ້ວຍຫຼາຍເຄືອມຕະວິກິດສານທີ່ເປັນທີ່ກະຈາຍກາຍ:

Internet Explorer ນຳໃຊ້ກົນລະບົບ selectNodes() ເພື່ອຄົ້ນຫາຂອງ XML ບັນຊີ:

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera ແລະ Safari ນຳໃຊ້ກົນລະບົບ evaluate() ເພື່ອຄົ້ນຫາຂອງ XML ບັນຊີ:

xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE, null);

ການຄົ້ນຫາຄວາມລາຍງາຍທັງໝົດ title

ການຄົ້ນຫາຄວາມລາຍງາຍທີ່ຕາມ /bookstore/book/title

/bookstore/book/title

ທົດລອງຄັບຄືນ

ເລືອກຫົວຂໍ້ທີ່ຢູ່ລາຍການ bookstore ທີ່ຢູ່ບັດທີໜຶ່ງ:

ຕົວຢ່າງດັ່ງກ່າວລວມມີຫົວຂໍ້ bookstore ທີ່ຢູ່ລາຍການສະຖານີບັດທີໜຶ່ງ:

/bookstore/book[1]/title

ທົດລອງຄັບຄືນ

ມີບັນຫາຄົນນຶກຄືກັນ. ຕົວຢ່າງດັ່ງກ່າວລວມມີຜົນອອກຕ່າງກັນໃນ IE ແລະ ເບິ່ງຕໍ່ມາ.

IE5 ແລະຫຼາຍກວ່າຈະເບິ່ງ [0] ຄືສະຖານີທໍາອິດ ແຕ່ຕາມມາດຕະຖານ W3C ຄື [1].

ເພື່ອແກ້ໄຂບັນຫາ [0] ແລະ [1] ໃນ IE5+ ທີ່ຈະສ້າງຄຳປະສານ XPath ສະແກນການເລືອກຈາກສັບພິມ.

ຕົວຢ່າງດັ່ງກ່າວລວມມີຫົວຂໍ້ bookstore ທີ່ຢູ່ລາຍການສະຖານີບັດທີໜຶ່ງ:

xml.setProperty("SelectionLanguage","XPath");
xml.selectNodes("/bookstore/book[1]/title");

ທົດລອງຄັບຄືນ

ເລືອກຫົວຂໍ້ທັງໝົດ

ຕົວຢ່າງດັ່ງກ່າວລວມມີຫົວຂໍ້ທີ່ລາຄາ:

/bookstore/book/price/text()

ທົດລອງຄັບຄືນ

ເລືອກຫົວຂໍ້ທີ່ລາຄາຫຼາຍກວ່າ 35

ຕົວຢ່າງດັ່ງກ່າວລວມມີຫົວຂໍ້ທີ່ລາຄາຫຼາຍກວ່າ 35:

/bookstore/book[price>35]/price

ທົດລອງຄັບຄືນ

ເລືອກຫົວຂໍ້ທີ່ລາຄາຫຼາຍກວ່າ 35

ຕົວຢ່າງດັ່ງກ່າວລວມມີຫົວຂໍ້ທີ່ລາຄາຫຼາຍກວ່າ 35:

/bookstore/book[price>35]/title

ທົດລອງຄັບຄືນ