2015-04-14 15 views
5

Sto riscontrando alcuni problemi con XPath e import.io e spero che tu possa aiutarmi. :)Come usare la sottostringa() con Import.io?

il codice html:

<a href="page.php?var=12345"> 

Per il momento, riesco a estrarre il contenuto del href (page.php var = 12345?) Con questo:

./td[3]/a[1]/@href 

Tuttavia, mi piacerebbe solo raccogliere:

sottostringa potrebbe essere la soluzione ma non sembra lavorare su import.io mentre lo uso ...

substring(./td[3]/a[1]/@href,13) 

Qualche idea di quale sia il problema?

Grazie mille in anticipo!

risposta

7

Provare a utilizzare questo per il XPath: (Avere il campo selezionato come testo)

.//*[@class='oeil']/a/@href 

quindi utilizzare questo per la vostra regex:

([^=]*)$ 

questo modo si ottiene il numero ISBN si sta cercando per.

import.io supporta solo le funzioni in XPath quando restituiscono un elenco di nodi

+0

Fantastico! Funziona! Ho appena dovuto aggiungere la tua espressione regex al mio codice XPath e ottengo il numero ISBN! Grazie mille Wilson! :) – Pierre

1

tua espressione percorso va bene, ma forse dovrebbe essere

substring(./td[3]/a[1]/@href,14) 

"non sembra funzionare" non è molto chiara descrizione di ciò che è sbagliato. Ricevi messaggi di errore? L'output è sbagliato? Hai qualche codice che circonda l'espressione del percorso che potresti mostrare?


È possibile utilizzare stringa, ma utilizzando substring-after() sarebbe ancora meglio.

substring-after(/a/@href,'=') 

assumendo come input il minuscolo frammento che avete dimostrato:

<a href="page.php?var=12345"/> 

selezionerà

12345 

e tenendo conto della struttura del vostro input

substring-after(./td[3]/a[1]/@href,'=') 

A leader . in un'espressione di percorso seleziona solo i nodi figlio immediato td del nodo di contesto corrente. Credo che tu sappia quello che stai facendo.

+0

Ciao Mathias! Grazie per la tua risposta veloce. :) Hai ragione "non sembra funzionare" è -quisito- vago ... Beh, quando inserisco la mia espressione di percorso, la riga scompare letteralmente dalla pagina dei risultati ... come se la funzione non esistere. Questo è il motivo per cui sto chiedendo se import.io accetta la sottostringa(). Sì, lo so per il leader., Ma assicuratevi che funzioni multe per ottenere il contenuto href come import.io definisce ogni riga come riga. Forse sarà più semplice con la pagina: http: // www (punto) edistat (punto) com/palmares.php – Pierre

+0

@Pierre Vorrei riprodurre il problema su import.io. Dove posso inserire un'espressione XPath? –

+0

Crea un estrattore per la pagina che ti ho dato (Edistat.com), quindi aggiungi una nuova colonna, seleziona il link di un libro e infine, in alto a destra della finestra, fai clic sulla "chiave inglese" (a sinistra) pulsante vicino al pulsante CSS) per accedere alle impostazioni avanzate: i campi XPath e regex dovrebbero quindi apparire. – Pierre

Problemi correlati