ຄວາມຄິດຂອງ 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")

ເລືອກຕົວປະກອບ

ບໍ່ມີຄວາມຍິນດີ. IE ແລະກະບະບວນສະໄໝອື່ນໆຈະໃຊ້ XPath ທີ່ຫຼາຍກວ່ານັ້ນ.

ໃນບັນທັດຕໍ່າມັນມີລິຂະສຸດທີ່ຈະຫຼີ້ນຢູ່ຫຼາຍກວ່ານັ້ນຂອງກະບະບວນສະໄໝທີ່ເປັນປະຈຳວັນ

Internet Explorer ຈະໃຊ້ກົນລະຍຸດ selectNodes() ເພື່ອເລືອກຕົວປະກອບຈາກໂຕມ XML

xmlDoc.selectNodes(xpath);

Firefox, Chrome, Opera ແລະ Safari ຈະໃຊ້ກົນລະຍຸດ evaluate() ເພື່ອເລືອກຕົວປະກອບຈາກໂຕມ XML

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

ເລືອກຕົວປະກອບ title ທັງໝົດ

ບັນທັດຕໍ່າມັນເລືອກຕົວປະກອບ title ທັງໝົດ

/bookstore/book/title

亲自试一试

ເລືອກຕົວປະກອບ title ທີ່ເປັນຕົວປະກອບ book ທຳອິດ

ບັນທັດຕໍ່າມັນເລືອກຕົວປະກອບ title ທີ່ຢູ່ໃນປະກອບ bookstore ດ້ານຫຼັງ

/bookstore/book[1]/title

亲自试一试

ມັນມີບັນຫາຄົນກໍາລັງຄວາມຄິດ. ບັນທັດຕໍ່າມັນໃນ IE ແລະຫຼາຍກວ່ານັ້ນຈະອອກຜົນທີ່ແຕກຕ່າງກັນ.

IE5 ແລະຫຼາຍກວ່ານັ້ນ ຈະເບິ່ງ [0] ຄືຈະເປັນຕົວປະກອບທຳອິດ ແຕ່ຕາມມາດຕະຖານ W3C ຄວນເປັນ [1].

ເພື່ອແກ້ໄຂບັນຫາ [0] ແລະ [1] ໃນ IE5+ ຄວນກະຈັດການເລືອກຕົວປະກອບ XPath (SelectionLanguage).

ບັນທັດຕໍ່າມັນເລືອກຕົວປະກອບ title ທີ່ຢູ່ໃນປະກອບ bookstore ດ້ານຫຼັງ

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

亲自试一试

ເລືອກຕົວປະກອບລາຄາທັງໝົດ

ບັນທັດຕໍ່າມັນເລືອກຕົວປະກອບ text ທີ່ຢູ່ໃນຕົວປະກອບ price

/bookstore/book/price/text()

亲自试一试

ເລືອກຕົວປະກອບ price ທີ່ມີລາຄາຫຼາຍກວ່າ 35

下面的例子选取价格高于 35 的所有 price 节点:

/bookstore/book[price>35]/price

亲自试一试

选取价格高于 35 的 title 节点

下面的例子选取价格高于 35 的所有 title 节点:

/bookstore/book[price>35]/title

亲自试一试