ตัวอย่าง XPath
ในส่วนนี้ให้เราเรียนรู้จากตัวอย่างบางไวยากรณ์ XPath ขั้นพื้นฐาน
เช่นเอกสาร XML
เราจะใช้เอกสาร XML นี้ในตัวอย่างต่อไปนี้:
"Books.xml":
<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
รหัสเบราว์เซอร์ที่ทันสมัยที่สุด:
สำหรับเบราว์เซอร์ไมโครซอฟท์เก่า (IE 5 และ 6) ของรหัส:
เลือกโหนด
แต่น่าเสียดายที่ Internet Explorer และวิธีการที่แตกต่างกันในการจัดการอื่น ๆ XPath
ในตัวอย่างของเรามันมีรหัสเบราว์เซอร์ที่สำคัญที่สุด
Internet Explorer ใช้ selectNodes () วิธีการจากเอกสาร XML เพื่อเลือกโหนด:
Firefox, Chrome, Opera และ Safari ใช้ประเมิน () วิธีการเลือกโหนดจากเอกสาร XML:
เลือกชื่อทั้งหมด
ตัวอย่างต่อไปนี้เลือกโหนดชื่อทั้งหมด:
เลือกชื่อแรกของหนังสือ
ตัวอย่างต่อไปนี้เลือกองค์ประกอบร้านหนังสือด้านล่างแรกชื่อหนังสือโหนด:
มีปัญหา ตัวอย่างข้างต้นของผลที่แตกต่างกันใน IE และเบราว์เซอร์อื่น ๆ
IE5 และต่อมา [0] ถือเป็นโหนดแรกและเป็นไปตามมาตรฐาน W3C ควรเป็น [1]
ทางออกหนึ่ง!
เพื่อที่จะแก้ปัญหา IE5 + [0] และ [1] ของปัญหาคุณสามารถตั้งค่าตัวเลือกภาษาสำหรับ XPath นี้ (SelectionLanguage)
ตัวอย่างต่อไปนี้เลือกองค์ประกอบร้านหนังสือด้านล่างแรกชื่อหนังสือโหนด:
ตัวอย่าง
xml.selectNodes("/bookstore/book[1]/title");
ลอง»
เลือกทุกราคา
ตัวอย่างต่อไปนี้เลือกทั้งหมดราคาโหนดข้อความ:
เลือกเป็นราคาที่สูงกว่าราคาโหนด 35
ตัวอย่างต่อไปนี้เลือกราคาทั้งหมดสูงกว่าราคา 35 โหนด:
เลือกโหนดราคาที่สูงกว่า 35 ชื่อ
ตัวอย่างต่อไปนี้เลือกทั้งหมดโหนดชื่อราคาที่สูงกว่า 35: