เครื่องมือ
TH

XPath Tester – ทดสอบนิพจน์ XPath

เขียนนิพจน์ XPath แล้วดูผลลัพธ์ได้ทันทีขณะพิมพ์: อิลิเมนต์ แอตทริบิวต์ และข้อความที่ตรงกัน หรือค่าตัวเลข สตริง หรือ boolean ที่นิพจน์ส่งกลับ เครื่องมือนี้ใช้เอนจิน XPath 1.0 ที่มีอยู่ในเบราว์เซอร์ของคุณ

ตัวอย่าง – คลิกเพื่อลองใช้:

    เป็นส่วนตัว: ข้อมูลของคุณถูกประมวลผลในเบราว์เซอร์ และไม่มีการอัปโหลดไปที่ใดเลย

    วิธีทดสอบนิพจน์ XPath

    1. วาง XML เปิดไฟล์ หรือใช้แคตตาล็อกสินค้าตัวอย่าง
    2. พิมพ์นิพจน์ XPath หรือคลิกตัวอย่างใดตัวอย่างหนึ่ง ผลลัพธ์จะอัปเดตขณะพิมพ์ และกด Enter เพื่อประมวลผลทันที
    3. อ่านผลลัพธ์: จำนวนโหนดที่ตรงกันพร้อมประเภทและเนื้อหา หรือค่าตัวเลข สตริง หรือ boolean ที่นิพจน์ส่งกลับ

    ตารางสรุป XPath (Cheat Sheet)

    นิพจน์สิ่งที่เลือก
    /catalogอิลิเมนต์ราก catalog
    //productอิลิเมนต์ product ทุกตัว ในทุกระดับความลึก
    /catalog/product/namename ของสินค้าแต่ละรายการ ไล่ทีละขั้นจากราก
    //product/@idแอตทริบิวต์ id ของสินค้าทุกรายการ
    //product[@category='books']สินค้าที่แอตทริบิวต์ category มีค่าเป็น books
    //product[price > 20]สินค้าที่ราคาสูงกว่า 20 โดยเปรียบเทียบแบบตัวเลข
    //product[contains(name, 'USB')]สินค้าที่ชื่อมีคำว่า “USB” (แยกตัวพิมพ์เล็ก-ใหญ่)
    //product[not(tags)]สินค้าที่ไม่มีอิลิเมนต์ลูก tags
    (//product)[1]สินค้ารายการแรกในเอกสาร
    //product[1]สินค้ารายการแรกภายในอิลิเมนต์แม่แต่ละตัว
    //product[last()]สินค้ารายการสุดท้ายภายในอิลิเมนต์แม่แต่ละตัว
    //name/text()โหนดข้อความภายใน name
    //price/..อิลิเมนต์แม่ของ price แต่ละตัว
    //*[local-name()='product']อิลิเมนต์ product ใน namespace ใดก็ได้
    count(//product)จำนวนสินค้า
    sum(//price)ผลรวมของราคาทั้งหมด
    string(//product[1]/name)ชื่อสินค้ารายการแรกในรูปแบบสตริง

    Namespace ใน XPath

    XPath 1.0 ไม่มี default namespace ในเอกสารที่มี xmlns="…" เช่น sitemap หรือใบแจ้งหนี้ NF-e นิพจน์ //url จะไม่พบอะไรเลย เพราะอิลิเมนต์เหล่านั้นอยู่ใน namespace ดังกล่าว เครื่องมือนี้จึงแมป default namespace ไปยัง prefix x: (หรือ d: ถ้า x ถูกใช้ไปแล้ว) ทำให้ //x:url/x:loc ใช้งานได้ ส่วน prefix ที่ประกาศไว้ในเอกสาร เช่น cfdi: ในใบแจ้งหนี้ CFDI ก็ใช้ได้ตามที่เขียนไว้ ในเครื่องมือที่ไม่มีการตั้งค่า namespace นิพจน์ //*[local-name()='url'] ใช้ได้ทุกที่

    คำถามที่พบบ่อย

    เครื่องมือนี้รองรับ XPath เวอร์ชันใด?

    XPath 1.0 ซึ่งเป็นเวอร์ชันที่มีอยู่ในทุกเบราว์เซอร์และไลบรารี XML ส่วนใหญ่ ฟังก์ชันจาก XPath 2.0 ขึ้นไป เช่น matches(), lower-case() หรือ string-join() จะใช้ไม่ได้

    ทำไม XPath ของฉันไม่คืนผลลัพธ์ใดเลย?

    สาเหตุที่พบบ่อยที่สุดคือ default namespace (ให้ใช้ prefix x: ที่แสดงอยู่ใต้ตัวอย่าง) ตัวพิมพ์เล็ก-ใหญ่ไม่ตรงกัน – XPath แยกตัวพิมพ์เล็ก-ใหญ่ – และตำแหน่ง (position) ซึ่งเริ่มนับที่ 1 ไม่ใช่ 0

    แสดงผลลัพธ์ได้กี่รายการ?

    ระบบจะนับผลลัพธ์ที่ตรงกันทั้งหมด และแสดงรายการ 500 รายการแรกพร้อมประเภทโหนดและเนื้อหา

    XML ของฉันถูกอัปโหลดหรือไม่?

    ไม่ XML จะถูก parse และคิวรีในเบราว์เซอร์ของคุณ มีเพียง URL ที่คุณโหลดเท่านั้นที่ถูกดึงผ่านเซิร์ฟเวอร์ของเรา