ตัวอย่าง XPath
มาลองเรียนรู้ไวยากรณ์ XPath พื้นฐานกันโดยดูตัวอย่างบางส่วน
เอกสารตัวอย่าง XML
เราจะใช้เอกสาร XML ต่อไปนี้ในตัวอย่างด้านล่าง
"books.xml":
<?xml version="1.0" encoding="UTF-8"?>
<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();
รหัสสำหรับเบราว์เซอร์รุ่นเก่า (IE5 และ IE6) สามารถพบได้ในบทช่วยสอน AJAX
การเลือกโหนด
ขออภัย มีวิธีการต่างๆ ในการจัดการกับ XPath ในเบราว์เซอร์ต่างๆ
Chrome, Firefox, Edge, Opera และ Safari ใช้วิธีการประเมิน () เพื่อเลือกโหนด:
xmlDoc.evaluate(xpath, xmlDoc, null, XPathResult.ANY_TYPE,null);
Internet Explorer ใช้เมธอด selectNodes() เพื่อเลือกโหนด:
xmlDoc.selectNodes(xpath);
ในตัวอย่างของเรา เราได้รวมโค้ดที่ควรทำงานกับเบราว์เซอร์หลักๆ ส่วนใหญ่
เลือกชื่อเรื่องทั้งหมด
ตัวอย่างต่อไปนี้เลือกโหนดชื่อทั้งหมด:
ตัวอย่าง
/bookstore/book/title
เลือกชื่อหนังสือเล่มแรก
ตัวอย่างต่อไปนี้จะเลือกชื่อของโหนดหนังสือเล่มแรกภายใต้องค์ประกอบของร้านหนังสือ:
ตัวอย่าง
/bookstore/book[1]/title
เลือกราคาทั้งหมด
ตัวอย่างต่อไปนี้จะเลือกข้อความจากโหนดราคาทั้งหมด:
ตัวอย่าง
/bookstore/book/price[text()]
เลือกโหนดราคาที่มีราคา>35
ตัวอย่างต่อไปนี้จะเลือกโหนดราคาทั้งหมดที่มีราคาสูงกว่า 35:
ตัวอย่าง
/bookstore/book[price>35]/price
เลือกหัวเรื่องที่มีราคา>35
ตัวอย่างต่อไปนี้จะเลือกโหนดชื่อทั้งหมดที่มีราคาสูงกว่า 35:
ตัวอย่าง
/bookstore/book[price>35]/title