ตัวอย่าง XPath
- หน้าก่อนหน้า XPath Operator
- หน้าต่อไป สรุป XPath
在本节,让我们通过实例来学习一些基础的 XPath 语法。
เอกสารตัวอย่าง XML
เราจะใช้เอกสาร 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>
โหลดเอกสาร 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
เลือก title ของ book อันดับแรก
ตัวอย่างด้านล่างนี้เลือก title ของ book อันดับแรกใต้ bookstore
/bookstore/book[1]/title
ที่นี่มีปัญหาหนึ่ง ตัวอย่างด้านบนนี้จะแสดงผลต่างกันใน IE และเบราเซอร์อื่นๆ
IE5 และสูงกว่านั้นจะใช้ [0] ในตำแหน่งตัวเลือกแรก แต่ตามมาตราฐาน W3C ควรใช้ [1]
เพื่อแก้ปัญหา [0] และ [1] ใน IE5+ สามารถตั้งภาษาเลือก (SelectionLanguage) ให้กับ XPath
ตัวอย่างด้านล่างนี้เลือก title ของ book อันดับแรกใต้ bookstore
xml.setProperty("SelectionLanguage","XPath"); xml.selectNodes("/bookstore/book[1]/title");
เลือกทุกข้อความราคา
ตัวอย่างด้านล่างนี้เลือกทุกข้อความที่อยู่ในตัวอย่าง price
/bookstore/book/price/text()
เลือกตัวอย่าง price ที่ราคาสูงกว่า 35
ตัวอย่างด้านล่างนี้เลือกทุกตัวอย่าง price ที่ราคาสูงกว่า 35
/bookstore/book[price>35]/price
เลือกตัวอย่าง title ที่ราคาสูงกว่า 35
ตัวอย่างด้านล่างนี้เลือกทุกตัวอย่าง title ที่ราคาสูงกว่า 35
/bookstore/book[price>35]/title
- หน้าก่อนหน้า XPath Operator
- หน้าต่อไป สรุป XPath