XPath è una tecnologia che specifica ed estrae in modo accurato ed efficiente le informazioni richieste dai dati della struttura ad albero, come HTML e XML.
Panoramica XPath
XPath è un linguaggio utilizzato per specificare ed estrarre elementi e attributi specifici in un albero di documenti XML o HTML. Poiché le pagine web sono spesso composte da HTML, XPath è ampiamente utilizzato in vari scenari, come il web scraping, il recupero dati e la ricerca di dati XML.
L'uso tipico è il seguente:
- Estrazione dati nei Web Crawler: XPath viene utilizzato per recuperare automaticamente dati specifici, come informazioni sui prodotti sui siti di e-commerce o titoli di articoli su siti di notizie.
- Ricerca e elaborazione dati XML: nei sistemi aziendali e nell'elaborazione dei link dati, i dati vengono spesso scambiati in formato XML. Utilizzando XPath, puoi estrarre in modo efficiente le informazioni necessarie da grandi quantità di dati XML.
- Parsing API Responses (formato XML): Quando si usano API basate su XML, come SOAP, XPath viene utilizzato per analizzare i dati di risposta. Questo permette di ottenere rapidamente codici di stato specifici e dati sui risultati, migliorando l'accuratezza dell'integrazione del sistema e dell'elaborazione automatizzata.
Raccomandazione degli strumenti
Nel processo di apprendimento e utilizzo di XPath, gli strumenti comuni includono:
Strumenti per sviluppatori Chrome: Uno strumento potente che include il browser Chrome, puoi chiamarlo premendo il tasto F12. Nel pannello "Elements", puoi localizzare rapidamente gli elementi HTML su una pagina web passando il mouse e cliccando, e cliccando con il tasto destro su un elemento puoi copiare direttamente l'espressione XPath per una facile verifica e test. Ad esempio, quando analizzi una pagina prodotto e-commerce, puoi usare gli strumenti di sviluppo di Chrome per ottenere rapidamente XPath per nomi di prodotti, prezzi e altri elementi. Firefox Developer Tools: Include anche il browser, simile a Chrome Developer Tools. Ti permette inoltre di localizzare facilmente elementi nella tua pagina, oltre a visualizzare e testare espressioni XPath. Questa è una buona opzione per gli sviluppatori abituati a usare il browser Firefox. Strumenti online per il test XPath: Strumenti online come "XPath Tester" possono essere utilizzati senza installazione e possono essere utilizzati aprendo una pagina web. Basta incollare il contenuto di un documento XML o HTML, inserire un'espressione XPath e vedere i risultati corrispondenti in tempo reale. Questo strumento è particolarmente adatto ai principianti che vogliono iniziare rapidamente e fare semplici esercizi XPath. Plugin XPath Helper: Prendendo come esempio Chrome Browser, dopo aver installato il plugin XPath Helper, aggiungerà una finestra fluttuante all'interfaccia del browser durante la navigazione sul web, mostrando il percorso XPath dell'elemento attuale con il mouse-over, e puoi modificare e testare direttamente le espressioni XPath direttamente nella finestra, migliorando notevolmente l'efficienza dello sviluppo.
Sintassi astratta di XPath
Seleziona un nodo
XPath utilizza espressioni di percorso per selezionare i nodi in un documento XML. I nodi vengono selezionati seguendo un percorso o un passaggio. Le espressioni di percorso più utili sono elencate di seguito:
espressione | descrizione | | nodename | Seleziona tutti i nodi figli di questo nodo. | | / | Scegli dal nodo radice (prendi il nodo figlio). | | // | Seleziona i nodi nel documento dal nodo corrente della selezione corrispondente, indipendentemente dalla loro posizione (prendiamo i nodi discendenti). | | . | Scegli il nodo corrente. | | .. | Scegli il nodo genitore del nodo corrente. | | @ | Scegli un attributo. |
Nella tabella sottostante, abbiamo elencato alcune espressioni di percorso insieme ai risultati delle espressioni:
Espressioni di percorso | risultato | | libreria | Scegli tutti i nodi chiamati libreria. | | /bookstore | Scegli la libreria a elementi radici. Nota: Se il percorso inizia con una barra in avanti ( / ), allora questo percorso rappresenta sempre un percorso assoluto verso un elemento! | | Libreria/Libro | Seleziona tutti gli elementi del libro che sono elementi bambini della libreria. | | //book | Seleziona tutti i sottoelementi del libro, indipendentemente dalla loro posizione nel documento. | | libreria//libro | Seleziona tutti gli elementi del libro che discendono dell'elemento libreria, indipendentemente da dove si trovino sotto la libreria. | | @lang | Scegli tutte le proprietà chiamate lang. |
Predicati
Un predicato viene utilizzato per trovare un nodo specifico o un nodo contenente un valore specificato. Il predicato è incorporato tra parentesi quadrate. Nella tabella sottostante, elenchiamo alcune espressioni di percorso con predicati e i risultati delle espressioni:
Espressioni di percorso | risultato | | /bookstore/book[1] | Scegli il primo elemento del libro che fa parte dell'elemento bambino della libreria. | | /bookstore/book[last()] | Sceglie l'ultimo elemento del libro che fa parte del sottoelemento della libreria. | | /bookstore/book[last()-1] | Sceglie l'elemento penultimo del libro che appartiene all'elemento bambino della libreria. | | /bookstore/book[position()<3] | Scegli i primi due elementi del libro che sono elementi figli dell'elemento libreria. | | Titolo[@lang] | Seleziona tutti gli elementi del titolo che hanno una proprietà chiamata lang. | | titolo[@lang='inglese'] | Seleziona tutti gli elementi del titolo che hanno un attributo lang con un valore eng. | | /bookstore/book[price>35.00] | Seleziona tutti gli elementi del libro dell'elemento libreria, e il valore dell'elemento prezzo deve essere superiore a 35,00. | | /bookstore/book[price>35.00]//title | Seleziona tutti gli elementi del titolo dell'elemento libro nell'elemento libreria, e il valore dell'elemento prezzo deve essere superiore a 35,00. |
Seleziona un nodo sconosciuto
I jolly XPath possono essere usati per rilevare elementi XML sconosciuti.
Carattere jolly | descrizione | | * | Corrisponde a qualsiasi nodo elementale. | | @* | Corrisponde a qualsiasi nodo di attributo. | | nodo() | Corrisponde a qualsiasi tipo di nodo. |
Nella tabella sottostante, elenchiamo alcune espressioni di percorso e i risultati di queste espressioni:
Espressioni di percorso | risultato | | /bookstore/* | Seleziona tutti gli elementi bambini dell'elemento libreria. | | //* | Seleziona tutti gli elementi del documento. | | titolo[@*] | Seleziona tutti gli elementi del titolo con attributi. |
Scegli diversi percorsi
Usando "|" nell'espressione del cammino Operatori, potete scegliere diversi percorsi.
Nella tabella sottostante, elenchiamo alcune espressioni di percorso e i risultati di queste espressioni:
Espressioni di percorso | risultato | | //book/title | //book/price | Seleziona tutti gli elementi di titolo e prezzo dell'elemento libro. | | Titolo | prezzo | Scegli tutti gli elementi di titolo e prezzo nel documento. | | /bookstore/book/title | //price | Seleziona tutti gli elementi del titolo dell'elemento libro che appartengono all'elemento libreria e tutti gli elementi di prezzo nel documento. |
Funzione XPath
Di seguito è riportato un elenco commentato di aggiunte specifiche per XPath da parte delle funzioni principali di XPath e XSLT, incluse descrizioni, sintassi, liste di parametri, tipi di risultati e fonti nelle corrispondenti raccomandazioni del W3C.
- booleano()
- ceiling()
- scegli()
- concat()
- contiene()
- count()
- specifico per l'attuale XSLT
- document() specifico XSLT
- element-available()
- false()
- floor()
- formato-numero() specifico XSLT
- funzione-disponibile()
- generate-id() specifico per XSLT
- id()
- chiave() specifica XSLT
- lang()
- last()
- Nome-locale()
- Nome()
- namespace-uri()
- Spazio di normalizzazione()
- not()
- Numero()
- posizione()
- round()
- inizia con-con()
- string()
- string-length()
- sottostringa()
- sottostringa-dopo()
- sottostringa-prima()
- sum()
- sistema-proprietà() specifico per XSLT
- traduce()
- vero()
- unparsed-entity-url() specifico XSLT
Test pratici
Apri Chrome e ottieni il contenuto testuale di tutti i link della scheda A con il seguente comando:
Come mostrato di seguito:
Riferimento:Il login del link ipertestuale è visibile. |