Penguji XPath
Dokumen XML atau HTML
Tempel XML atau HTML dengan maksimal 1.000.000 karakter. Evaluasi berjalan di browser ini dengan XPath 1.0.
Ekspresi XPath 1.0 absolut atau relatif. Prefiks yang dideklarasikan dalam dokumen didaftarkan secara otomatis; namespace default tersedia lewat prefiks d.
Menulis XPath untuk scraping atau XSLT hanyalah coba-coba kalau Anda tidak punya tempat uji langsung. Penguji ini menerima XML atau HTML Anda di satu panel dan ekspresi Anda di panel lain, mengevaluasi XPath 1.0 dengan mesin milik browser Anda sendiri, lalu menampilkan setiap node yang cocok beserta jenis, atribut, isi teks, dan markup terserialisasinya. Ekspresi skalar seperti count(//book) langsung mengembalikan nilainya, dan prefiks namespace yang dideklarasikan di dokumen didaftarkan secara otomatis untuk Anda. Semuanya berjalan di browser Anda: dokumen tidak pernah diunggah ke mana pun.
Cara menguji ekspresi XPath
-
1
Tempel XML atau HTML
Deteksi otomatis beralih ke penguraian HTML yang longgar saat melihat doctype atau akar HTML; Anda juga bisa memaksa mode XML atau HTML.
-
2
Masukkan XPath Anda
Absolut (`/library/book`) atau relatif (`//div[@class='card']`), ekspresi XPath 1.0 apa pun.
-
3
Evaluasi
Mesin XPath browser Anda menjalankan kueri secara lokal; tidak ada yang dikirim ke server.
-
4
Periksa hasilnya
Setiap kecocokan menampilkan jenis node, atribut, teks yang dipangkas, dan markup terserialisasi; hingga 200 kecocokan ditampilkan.
Dasar-dasar XPath 1.0
| Ekspresi | Yang dicocokkan |
|---|---|
/books/book |
Anak <book> dari akar <books> |
//book |
Setiap <book> di mana pun dalam dokumen |
//book[@id='42'] |
<book> dengan atribut id bernilai 42 |
//book[1] |
<book> pertama di tiap induk (bukan di dokumen) |
(//book)[1] |
<book> pertama di seluruh dokumen |
//book[title='1984'] |
<book> yang teks <title>-nya “1984” |
//book/@id |
Atribut id dari semua elemen <book> |
//book[position() > 1] |
Semua <book> kecuali yang pertama |
//book[last()] |
<book> terakhir di tiap induk |
Ekspresi skalar juga berfungsi: count(//book) mengembalikan angka, string(//title) sebuah string, dan boolean(//book[@id]) benar atau salah. Penguji menampilkan nilai-nilai itu secara langsung, bukan sebagai daftar node.
Sumbu umum selain child
ancestor::, semua leluhurfollowing-sibling::, saudara setelah node saat inipreceding-sibling::, saudara sebelumnyadescendant::, semua turunanattribute::(singkatan@), atribut node saat iniparent::(singkatan..), elemen induk
Keunikan HTML
HTML bukan XML yang ketat, jadi penguji mengurainya secara longgar dengan parser HTML browser Anda, bukan parser XML yang ketat. Mode HTML terdeteksi otomatis dari <!DOCTYPE html> atau akar <html>, dan Anda bisa memaksa salah satu mode lewat pemilih mode dokumen. Dalam mode HTML, nama tag dan atribut diubah menjadi huruf kecil, jadi tulis XPath Anda dengan huruf kecil: //div[@class], bukan //DIV[@CLASS].
Namespace
XML dengan namespace membutuhkan pendaftaran prefiks:
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/">
<item>
<content:encoded>...</content:encoded>
</item>
</rss>
Penguji memindai dokumen untuk mencari deklarasi xmlns dan mendaftarkan setiap prefiks secara otomatis, sehingga //content:encoded langsung berfungsi. Namespace default (xmlns="..." polos) tidak punya prefiks di dokumen, jadi penguji mengikatnya ke prefiks d: pilih elemen <item> di feed ber-namespace default dengan //d:item. Namespace yang terdaftar ditampilkan di samping hasil.
Yang tidak dievaluasi penguji ini
Browser mengevaluasi XPath 1.0, dialek yang sama dengan yang dipakai sebagian besar perangkat scraping. Fitur XPath 2.0 ke atas, seperti matches(string, regex), tokenize(string, delimiter), ekspresi for ... return, dan operator sekuens, bukan bagian darinya; Anda akan menemukannya di toolchain XSLT 2.0/3.0. XPath 1.0 tetap pilihan paling portabel untuk web scraping.
Kiat pengujian
- Mulai dari yang luas, lalu persempit. Pertama
//div, lalu//div[@class], lalu nilai class yang spesifik. - Periksa deklarasi namespace. Sebagian besar masalah “kenapa XPath saya tidak mengembalikan apa-apa?” adalah soal namespace; lihat daftar namespace terdaftar.
- Perhatikan huruf besar-kecil. XML membedakan huruf besar dan kecil. Mode HTML mengubah nama menjadi huruf kecil.
- Uji string() saat mengekstrak teks.
//p/text()danstring(//p)berbeda ketika ada markup bersarang.
Pertanyaan yang Sering Diajukan
Tidak, hanya XPath. Sebagian besar browser mendukung keduanya lewat document.querySelectorAll (CSS) dan document.evaluate (XPath). Gunakan yang paling jelas untuk tugas Anda.
Penguraian HTML mengubah nama tag dan atribut menjadi huruf kecil. Pastikan XPath Anda memakai huruf kecil: //div[@class], bukan //DIV[@CLASS]. Periksa juga modenya: memaksa XML pada HTML yang berantakan gagal dengan galat penguraian, sedangkan mode HTML menguraikannya secara longgar.
Prefiks yang dideklarasikan di dokumen didaftarkan otomatis untuk ekspresi Anda. Namespace default diikat ke prefiks d, sehingga //d:item memilih elemen <item> di dokumen ber-namespace default. Ikatan yang aktif ditampilkan bersama hasil.
Tidak. Dokumen dan ekspresi dievaluasi oleh mesin XPath milik browser Anda sendiri dan tidak dikirim ke server kami, tidak disimpan, dan tidak ditambahkan ke alamat halaman; keduanya hanya ada di sesi browser ini agar tampilan multi-langkah bisa menunjukkan hasil Anda.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Penghitung FPS
Ukur FPS browser dengan requestAnimationFrame: penghalusan, frame rate minimum dan maksimum, ambang peringatan, dan grafik opsional. Berjalan lokal, tanpa unggahan dan tanpa API.
Generator Warna Acak
Buat 1 hingga 50 warna HEX acak dengan contoh warna yang bisa dipratinjau, disalin, dan dipakai di CSS, pengujian, atau eksplorasi palet.
Penyederhana Aljabar Boolean
Sederhanakan ekspresi Boolean memakai Karnaugh map dan algoritma Quine-McCluskey. Menampilkan setiap langkah minimisation dan bentuk SOP/POS akhir.
Pemformat JSON
Tempel JSON untuk dirapikan dengan indentasi 2 atau 4 spasi, dipadatkan menjadi output ringkas, atau diperiksa sintaksnya sebelum hasilnya disalin.
Pemilih Warna HEX
Pilih atau masukkan warna HEX untuk mendapatkan RGB, HSL, perkiraan CMYK, luminans relatif, serta kontras terhadap putih dan hitam.