Banco di prova per XPath
XPath Tester
Valuta un’espressione XPath o un selettore CSS su XML o HTML ed elenca ogni nodo corrispondente.
Esegue un’espressione XPath 1.0 o un selettore CSS su un documento XML o HTML e mostra ogni nodo trovato, con il percorso assoluto di ciascuno. La valutazione è quella del browser stesso, quindi quello che si vede qui è quello che farà `document.evaluate` nel proprio codice.
Espressione XPath 1.0
Documento
Lascia cadere un file
Letto solo in questa scheda.
Risultati
I risultati compaiono qui mentre scrivi.
Come gira
- · La valutazione passa per
document.evaluate(XPath 1.0) equerySelectorAlldel browser stesso. La tipizzazione del risultato — insieme di nodi, numero, stringa, booleano —, il percorso assoluto di ogni nodo e la gestione dei prefissi di namespace sono di questo strumento. - · La modalità XML legge in modo rigoroso e dice che cosa non va; la modalità HTML legge con larghezza, come fa un browser. HTML normalizza i nomi dei tag in minuscolo, quindi
//DIVnon va e//divsì. - · In un documento con un namespace predefinito (
xmlns="…"), un nome senza prefisso non corrisponde a niente: è la regola di XPath 1.0. Usa il prefisso_come in//_:item. - · Le funzioni di XPath 2.0 e 3.x (
matches,ends-with,lower-case) non ci sono in nessun browser.contains·starts-with·translate·normalize-spacesono quello che dà la 1.0. - · Il documento viene letto solo in questa scheda e non viene caricato da nessuna parte.
Per il JSON, il tester JSONPath o il playground di jq è lo strumento giusto.
Come si usa
Scegliere come leggere il documento
La modalità XML è severa e segnala che cosa è malformato. La modalità HTML è tollerante come lo è un browser, e normalizza i nomi dei tag in minuscolo.
Scrivere l’espressione
XPath o un selettore CSS: l’interruttore sceglie quale. I pulsanti di esempio coprono gli attributi, i predicati, i namespace, i nodi di commento e le funzioni che restituiscono uno scalare.
Leggere prima il tipo di risultato
XPath restituisce quattro tipi di cose, e uno solo è un insieme di nodi. `count()`, `string()` e `boolean()` danno un valore singolo, mostrato per conto suo invece che come un elenco di corrispondenze vuoto.
Domande frequenti
La mia espressione non trova niente e il documento sembra a posto.
Quasi certamente un namespace predefinito. Se il documento ha `xmlns="…"` sulla radice, XPath 1.0 stabilisce che un nome senza prefisso non corrisponde a niente: bisogna legare un prefisso. Qui quel prefisso è `_`, quindi `//item` diventa `//_:item`.
Perché `matches()` non esiste?
Perché i browser implementano soltanto XPath 1.0. `matches`, `ends-with`, `lower-case` e gli altri sono arrivati con la 2.0, e nessun browser ce l’ha. Gli attrezzi della 1.0 sono `contains`, `starts-with`, `translate` e `normalize-space`.
XPath o CSS: quale conviene usare?
CSS è più corto e basta per la maggior parte dello scraping. XPath può risalire (`..`, `ancestor::`), agganciarsi al contenuto testuale e restituire numeri e stringhe, e un selettore non fa niente di tutto questo. Questa pagina esegue entrambi, così si possono confrontare sullo stesso documento.
Scarica una pagina al posto mio?
No. Il documento si incolla o si trascina, e viene letto in questa scheda. Scaricarlo richiederebbe un proxy — il browser non lascia che una pagina legga un’altra origine — e quel proxy vedrebbe tutto quello che si è provato.
Può ricevere da
Formattatore e validatore XML
XML Formatter & Validator
Indenta l’XML e riporta riga e colonna del primo punto in cui la struttura non è ben formata.
Conversione JSON ⇄ XML
JSON ⇄ XML
Converte fra JSON e XML con un trattamento configurabile di attributi, array e nodi di testo.
Banco di prova per JSONPath
JSONPath Tester
Esegue un’espressione JSONPath su un documento ed evidenzia i nodi corrispondenti mentre scrivi.
Formattatore e validatore JSON
JSON Formatter & Validator
Formatta, minifica e valida il JSON, indicando riga e colonna esatte di un errore di sintassi.
Dopo
Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.
Formattatore e minificatore HTML
HTML Beautifier & Minifier
Formatta o minifica l’HTML, conservando gli elementi in linea e riducendo gli spazi bianchi se glielo chiedi.
Banco di prova per JSONPath
JSONPath Tester
Esegue un’espressione JSONPath su un documento ed evidenzia i nodi corrispondenti mentre scrivi.
Conversione JSON ⇄ XML
JSON ⇄ XML
Converte fra JSON e XML con un trattamento configurabile di attributi, array e nodi di testo.
Formattatore e validatore XML
XML Formatter & Validator
Indenta l’XML e riporta riga e colonna del primo punto in cui la struttura non è ben formata.
Codificatore e decodificatore Base64
Base64 Encoder & Decoder
Codifica e decodifica in Base64 e Base64URL testo o file, trattando correttamente l’UTF-8.
Da curl a codice
curl to Code
Converte un comando curl in fetch, axios, requests di Python, Go, PHP o PowerShell.