XPath คือภาษาสำหรับเลือกข้อมูลใน XML และ HTML ที่เราสามารถใช้เพื่อเข้าถึง element และ attribute ของ XML หรือ HTML ได้อย่างรวดเร็ว โดยที่ไม่จำเป็นต้องใช้ id หรือ class สำหรับการเข้าถึงข้อมูล
การเขียน XPath นั้นจะใช้ syntax หรือรูปแบบการเขียนเฉพาะของภาษานี้ ดังนั้น ในการเขียน XPath เบื้องต้นจะต้องรู้คำสั่งที่ใช้เขียน XPath และวิธีการเข้าถึง element และ attribute ของ XML หรือ HTML ดังนี้
- การเข้าถึง element โดยใช้ชื่อ element ในการเข้าถึง ดังนี้
//element_name
เช่น //div จะเข้าถึง element div ทั้งหมด
- การเข้าถึง element ด้วย attribute โดยใช้ชื่อ attribute และค่าที่ต้องการในการเข้าถึง element ดังนี้
//element_name[@attribute_name='attribute_value']
เช่น //a[@href=’https://www.google.com/‘] จะเข้าถึง element a ที่มี attribute href มีค่าเป็น https://www.google.com/
- การเข้าถึง element ด้วยตำแหน่ง โดยใช้ตำแหน่งของ element ในการเข้าถึง ดังนี้
//element_name[position()]
เช่น //div[position()=3] จะเข้าถึง element div ที่อยู่ในตำแหน่งที่ 3
- การเข้าถึง element ด้วย text โดยใช้ข้อความใน element ในการเข้าถึง ดังนี้
//element_name[text()='text_value']
เช่น //h1[text()=’Hello World’] จะเข้าถึง element h1 ที่มีข้อความเป็น Hello World
- การเข้าถึง element โดยใช้ส่วนท้ายของ attribute โดยใช้ส่วนท้ายของ attribute ในการเข้าถึง ดังนี้
//element_name[ends-with(@attribute_name,'attribute_value')]
เช่น //img[ends-with(@src,’.jpg’)] จะเข้าถึง element img ที่มี attribute src ที่สิ้นสุดด้วย .jpg
- การเข้าถึง element โดยใช้ส่วนต้นของ attribute โดยใช้ส่วนต้นของ attribute ในการเข้าถึง ดังนี้
//element_name[starts-with(@attribute_name,'attribute_value')]
เช่น //a[starts-with(@href,’https://’)] จะเข้าถึง element a ที่มี attribute href ที่ขึ้นต้นด้วย https://
- การเข้าถึง element โดยใช้จุด โดยใช้จุดเพื่อเข้าถึง element บนลำดับที่แน่นอน ดังนี้
//element_name[index]
เช่น //div[2] จะเข้าถึง element div ที่อยู่บนลำดับที่ 2
- การเข้าถึง element ด้วยลำดับ โดยใช้ลำดับของ element ในการเข้าถึง ดังนี้
//element_name[index]
เช่น //div[2] จะเข้าถึง element div ที่อยู่บนลำดับที่ 2
- การเข้าถึง element ด้วยการใช้ OR โดยใช้เครื่องหมาย | เพื่อเข้าถึง element หลาย element ในคำสั่งเดียว ดังนี้
//element_name1 | //element_name2
เช่น //h1 | //h2 จะเข้าถึงทั้ง element h1 และ h2
นอกจากนี้ ยังมีคำสั่งอื่นๆ ที่สามารถใช้เขียน XPath ได้อีก เช่น contains, following-sibling, preceding-sibling, ancestor, descendant, child, parent และอื่นๆ