2015-04-14 6 views
5

Ich habe einige Probleme mit XPath und import.io und ich hoffe, Sie können mir helfen. :)Wie benutze ich substring() mit Import.io?

Der HTML-Code:

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

Im Moment schaffe ich es, den Inhalt des href zu extrahieren (page.php var = 12345?) Mit diesem:

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

Ich würde gerne nur sammeln:

substring könnte die Lösung sein, aber es scheint nicht um an import.io zu arbeiten, wie ich es verwende ...

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

Irgendwelche Ideen, was das Problem ist?

Vielen Dank im Voraus!

Antwort

7

Versuchen Sie dies mit der XPath: (das Feld als Text ausgewählt haben)

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

diese dann für Ihre regex verwenden:

([^=]*)$ 

Dies wird Ihnen die ISBN-Nummer erhalten Sie suchen zum.

import.io unterstützt nur Funktionen in XPath, wenn sie eine Knotenliste zurückgeben

+0

Awesome! Es klappt! Ich musste nur meinen Regex-Ausdruck zu meinem XPath-Code hinzufügen und erhalte die ISBN-Nummer! Vielen Dank Wilson! :) – Pierre

1

Ihr Weg Ausdruck ist in Ordnung, aber vielleicht sollte es sein

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

„scheint nicht zu funktionieren“ ist nicht eine sehr klare Beschreibung dessen, was falsch ist. Erhalten Sie Fehlermeldungen? Ist die Ausgabe falsch? Haben Sie Code, der den Pfadausdruck umgibt, den Sie anzeigen können?


können Sie String verwenden, aber substring-after() verwenden wäre noch besser.

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

als Eingang unter der Annahme, das winzige Schnipsel Sie gezeigt haben:

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

12345 

und unter Berücksichtigung wählt die Struktur Ihrer Eingabe

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

A führende . in einem Pfadausdruck wählt nur unmittelbar untergeordnete Knoten td des aktuellen Kontextknotens aus. Ich vertraue dir, dass du weißt, was du tust.

+0

Hallo Mathias! Danke für deine schnelle Antwort. :) Sie haben recht "scheint nicht zu arbeiten" ist -quite- vage ... Nun, wenn ich meinen Pfad Ausdruck, die Zeile buchstäblich aus der Ergebnisseite verschwindet ... als ob die Funktion nicht existieren. Deshalb frage ich, ob import.io substring() akzeptiert. Ja, ich weiß für die Führung., Aber seien Sie versichert, dass es funktioniert, Geldstrafen, um den href-Inhalt zu erhalten, da import.io jede Zeile als Zeile definiert. Vielleicht wird es einfacher mit der Seite: http: // www (Punkt) edistat (dot) com/palmares.php – Pierre

+0

@Pierre Ich möchte Ihr Problem auf import.io reproduzieren. Wo kann ich einen XPath-Ausdruck eingeben? –

+0

Erstellen Sie einen Extraktor für die Seite, die ich Ihnen gab (Edistat.com), fügen Sie dann eine neue Spalte hinzu, wählen Sie einen Link eines Buches aus und klicken Sie am oberen rechten Rand des Fensters auf den Schraubenschlüssel (links Schaltfläche in der Nähe der CSS-Schaltfläche), um auf die erweiterten Einstellungen zuzugreifen: Die Felder XPath und Regex sollten dann angezeigt werden. – Pierre