เครื่องมือทดสอบ XPath
เอกสาร XML หรือ HTML
วาง XML หรือ HTML ได้สูงสุด 1,000,000 อักขระ การประเมินผลเกิดขึ้นในเบราว์เซอร์นี้โดยใช้ XPath 1.0
ใช้ XPath 1.0 ได้ทั้งแบบสัมบูรณ์และแบบสัมพัทธ์ prefix ที่ประกาศไว้ในเอกสารจะถูกลงทะเบียนให้อัตโนมัติ ส่วน namespace เริ่มต้นเรียกใช้ได้ผ่าน prefix d
ประเมิน XPathการเขียน XPath สำหรับงาน web scraping หรือ XSLT คือการเดาสุ่มไปเรื่อย ๆ ถ้าคุณไม่มีสนามทดลองแบบสด เครื่องมือนี้รับ XML หรือ HTML ของคุณในช่องหนึ่งและนิพจน์ในอีกช่องหนึ่ง แล้วประเมิน XPath 1.0 ด้วยเอนจินของเบราว์เซอร์ของคุณเอง จากนั้นแสดงทุกโหนดที่ตรงกันพร้อมชนิดโหนด แอตทริบิวต์ เนื้อหาข้อความ และมาร์กอัปที่ซีเรียไลซ์แล้ว นิพจน์แบบสเกลาร์อย่าง count(//book) จะคืนค่าออกมาโดยตรง ส่วนพรีฟิกซ์เนมสเปซที่ประกาศไว้ในเอกสารจะถูกลงทะเบียนให้อัตโนมัติ ทุกอย่างทำงานในเบราว์เซอร์ของคุณ: เอกสารไม่ถูกอัปโหลดไปที่ใดเลย
วิธีทดสอบนิพจน์ XPath
-
1
วาง XML หรือ HTML
การตรวจจับอัตโนมัติจะสลับไปใช้การแยกวิเคราะห์ HTML แบบผ่อนปรนเมื่อพบ doctype หรือรูตของ HTML และคุณยังบังคับเลือกโหมด XML หรือ HTML เองได้
-
2
ป้อนนิพจน์ XPath ของคุณ
แบบสัมบูรณ์ (`/library/book`) หรือแบบสัมพัทธ์ (`//div[@class='card']`) ใช้ได้กับนิพจน์ XPath 1.0 ทุกแบบ
-
3
ประเมินผล
เอนจิน XPath ของเบราว์เซอร์รันคิวรีในเครื่องของคุณเอง ไม่มีการส่งอะไรไปยังเซิร์ฟเวอร์
-
4
ตรวจดูผลลัพธ์
แต่ละรายการที่ตรงกันจะแสดงชนิดโหนด แอตทริบิวต์ ข้อความที่ตัดให้สั้น และมาร์กอัปที่ซีเรียไลซ์แล้ว โดยแสดงได้สูงสุด 200 รายการ
พื้นฐาน XPath 1.0
| นิพจน์ | สิ่งที่ตรงกัน |
|---|---|
/books/book |
<book> ที่เป็นลูกของรูต <books> |
//book |
<book> ทุกตัวไม่ว่าอยู่ตรงไหนของเอกสาร |
//book[@id='42'] |
<book> ที่มีแอตทริบิวต์ id เท่ากับ 42 |
//book[1] |
<book> ตัวแรกของแต่ละพาเรนต์ (ไม่ใช่ของทั้งเอกสาร) |
(//book)[1] |
<book> ตัวแรกของทั้งเอกสาร |
//book[title='1984'] |
<book> ที่ข้อความใน <title> คือ “1984” |
//book/@id |
แอตทริบิวต์ id ของทุกอิลิเมนต์ <book> |
//book[position() > 1] |
<book> ทุกตัวยกเว้นตัวแรก |
//book[last()] |
<book> ตัวสุดท้ายของแต่ละพาเรนต์ |
นิพจน์แบบสเกลาร์ก็ใช้ได้เช่นกัน: count(//book) คืนค่าตัวเลข string(//title) คืนสตริง และ boolean(//book[@id]) คืนจริงหรือเท็จ เครื่องมือจะแสดงค่าเหล่านั้นโดยตรงแทนที่จะเป็นรายการโหนด
แกนที่ใช้บ่อยนอกเหนือจาก child
ancestor::บรรพบุรุษทั้งหมดfollowing-sibling::โหนดพี่น้องที่อยู่ถัดจากโหนดปัจจุบันpreceding-sibling::โหนดพี่น้องที่อยู่ก่อนหน้าdescendant::โหนดลูกหลานทั้งหมดattribute::(ตัวย่อ@) แอตทริบิวต์ของโหนดปัจจุบันparent::(ตัวย่อ..) อิลิเมนต์พาเรนต์
ข้อควรรู้เกี่ยวกับ HTML
HTML ไม่ใช่ XML แบบเข้มงวด เครื่องมือจึงแยกวิเคราะห์อย่างผ่อนปรนด้วยพาร์เซอร์ HTML ของเบราว์เซอร์คุณแทนพาร์เซอร์ XML แบบเข้มงวด โหมด HTML จะถูกตรวจจับอัตโนมัติจาก <!DOCTYPE html> หรือรูต <html> และคุณบังคับเลือกโหมดใดโหมดหนึ่งได้จากตัวเลือกโหมดเอกสาร ในโหมด HTML ชื่อแท็กและชื่อแอตทริบิวต์จะถูกแปลงเป็นตัวพิมพ์เล็ก จึงควรเขียน XPath ด้วยตัวพิมพ์เล็ก: //div[@class] ไม่ใช่ //DIV[@CLASS]
เนมสเปซ
XML ที่มีเนมสเปซต้องลงทะเบียนพรีฟิกซ์ก่อน:
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<content:encoded>...</content:encoded>
</item>
</rss>
เครื่องมือจะสแกนเอกสารเพื่อหาการประกาศ xmlns แล้วลงทะเบียนทุกพรีฟิกซ์ให้อัตโนมัติ ดังนั้น //content:encoded จึงใช้ได้ทันที ส่วนเนมสเปซเริ่มต้น (xmlns="..." เปล่า ๆ) ไม่มีพรีฟิกซ์ในเอกสาร เครื่องมือจึงผูกไว้กับพรีฟิกซ์ d: เลือกอิลิเมนต์ <item> ในฟีดที่ใช้เนมสเปซเริ่มต้นด้วย //d:item เนมสเปซที่ลงทะเบียนแล้วจะแสดงอยู่ข้างผลลัพธ์
สิ่งที่เครื่องมือนี้ไม่ประเมิน
เบราว์เซอร์ประเมิน XPath 1.0 ซึ่งเป็นสำเนียงเดียวกับที่เครื่องมือ scraping ส่วนใหญ่ใช้ ฟีเจอร์ของ XPath 2.0 ขึ้นไป เช่น matches(string, regex), tokenize(string, delimiter), นิพจน์ for ... return และตัวดำเนินการซีเควนซ์ ไม่ได้เป็นส่วนหนึ่งของมัน คุณจะพบฟีเจอร์เหล่านี้ในชุดเครื่องมือ XSLT 2.0/3.0 XPath 1.0 ยังคงเป็นตัวเลือกที่พกพาได้กว้างที่สุดสำหรับ web scraping
เคล็ดลับการทดสอบ
- เริ่มจากกว้างแล้วค่อยบีบให้แคบ เริ่มจาก
//divตามด้วย//div[@class]แล้วจึงระบุค่า class ที่ต้องการ - ตรวจการประกาศเนมสเปซ ปัญหา “ทำไม XPath ของฉันไม่คืนอะไรเลย” ส่วนใหญ่มาจากเนมสเปซ ให้ดูรายการเนมสเปซที่ลงทะเบียนแล้ว
- ระวังตัวพิมพ์ใหญ่เล็ก XML แยกแยะตัวพิมพ์ใหญ่เล็ก ส่วนโหมด HTML จะแปลงชื่อเป็นตัวพิมพ์เล็ก
- ลองใช้ string() เมื่อดึงข้อความ
//p/text()กับstring(//p)ให้ผลต่างกันเมื่อมีมาร์กอัปซ้อนอยู่ข้างใน
คำถามที่พบบ่อย
ไม่ รองรับเฉพาะ XPath เบราว์เซอร์ส่วนใหญ่รองรับทั้งสองแบบผ่าน document.querySelectorAll (CSS) และ document.evaluate (XPath) เลือกใช้แบบที่ชัดเจนกว่าสำหรับงานนั้น
การแยกวิเคราะห์ HTML จะแปลงชื่อแท็กและแอตทริบิวต์เป็นตัวพิมพ์เล็ก ตรวจให้แน่ใจว่า XPath ของคุณใช้ตัวพิมพ์เล็ก: //div[@class] ไม่ใช่ //DIV[@CLASS] และอย่าลืมเช็กโหมดด้วย: การบังคับโหมด XML กับ HTML ที่หละหลวมจะล้มเหลวพร้อมข้อผิดพลาดการแยกวิเคราะห์ ขณะที่โหมด HTML จะแยกวิเคราะห์อย่างผ่อนปรน
พรีฟิกซ์ที่ประกาศในเอกสารจะถูกลงทะเบียนให้นิพจน์ของคุณอัตโนมัติ เนมสเปซเริ่มต้นจะถูกผูกกับพรีฟิกซ์ d ดังนั้น //d:item จะเลือกอิลิเมนต์ <item> ในเอกสารที่ใช้เนมสเปซเริ่มต้น การผูกที่ใช้งานอยู่จะแสดงพร้อมผลลัพธ์
ไม่ เอกสารและนิพจน์ถูกประเมินโดยเอนจิน XPath ของเบราว์เซอร์คุณเอง ไม่ถูกส่งไปยังเซิร์ฟเวอร์ของเรา ไม่ถูกจัดเก็บ และไม่ถูกเพิ่มเข้าไปในที่อยู่ของหน้า ทั้งสองอยู่แค่ในเซสชันของเบราว์เซอร์นี้เพื่อให้มุมมองแบบหลายขั้นตอนแสดงผลลัพธ์ของคุณได้
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
ตัวตรวจสอบอีเมล
ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ
ตัวตรวจสอบความถูกต้องของ JSON
ตรวจสอบไวยากรณ์ JSON และตรวจจับเครื่องหมายจุลภาคต่อท้าย เครื่องหมายอัญประกาศที่ผิด คีย์ซ้ำ และโครงสร้างที่ผิดรูปแบบ พร้อมระบุตำแหน่งข้อผิดพลาดอย่างแม่นยำ
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือนี้มีให้บริการในภาษาอื่น
- XPath-testare [SV]
- XPath テスター [JA]
- Probador de XPath [ES]
- XPath 테스터 [KO]
- أداة اختبار XPath [AR]
- Testador de XPath [PT]
- XPath-Tester [DE]
- Testeur XPath [FR]
- Penguji XPath [ID]
- XPath-tester [NL]
- Công cụ kiểm tra XPath [VI]
- Tester XPath [PL]
- XPath 测试工具 [ZH]
- XPath Tester [EN]
- Tester XPath [IT]
- Тестер XPath [RU]
- XPath Test Aracı [TR]