Methode nicht anwendbar Fehler bei der Verwendung von Jsoup in benutzerdefiniertem Java-Code
Frage
Ich habe Probleme mit der Verwendung von Jsoup in einem tJavaRow
komponente in Talend.
Hier ist mein Job:
Durch tLibraryLoad
Ich lade die .jar
dateien für Jsoup und die java.io.File Bibliothek und importieren Sie sie dann in die tJavaRow_2
Komponente:
import java.io.File;
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.jsoup.select.Elements;
Und dann versuchen Sie, den folgenden Code im Hauptteil des tJavaRow_2
:
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt", "utf-8");
Elements el = document.select(".gutter10");
Elements el = document.select(".gutter10");
String result = el.text();
String result = el.text();
if(result.length() > 20)
if(result.length() > 20)
{context.lastpage = true;};
Scheint mir bisher logisch.Aber ich bekomme diesen Fehler:
Können Sie mir helfen, dieses Problem zu lösen?Ich verstehe nicht, was ich von diesem Punkt an tun soll.
ANHANG:Java-Code, der in Eclipse funktioniert:
import java.io.File;
import java.io.File;
//import java.util.regex.*;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class regextest {
public static boolean regExChecker() throws IOException
{
boolean x = false;
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/absolventa_testquery.txt"), "utf-8");
Elements el = document.select(".gutter10");
String result = el.text();
if(result.length() > 20)
{x = true;};
//System.out.println(x);
return x;
}
public static void main(String[] args) throws IOException{
System.out.println(regExChecker());
}
}
Lösung
Ihnen fehlt eine schließende Klammer in Ihrem Codeblock.Ihre erste Zeile sollte sein:
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");
So wie es ist, erstellen Sie eine Datei aus dem Pfad "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8"
und dann übergeben Sie einfach dieses Dateiobjekt (es wird kein richtiges Dateiobjekt sein, aber aus irgendeinem Grund hat der Compiler dies nicht erkannt) an die Analysemethode von Jsoup.
Blick auf Dokumentation von Jsoup der einzige Methodenaufruf zum Parsen, der ein einzelner Wert ist, ist, wenn Sie ein HTML-Dokument in einer Zeichenfolge an ihn übergeben.Es erwartet also eine Zeichenfolge und erhält stattdessen eine (defekte) Datei.
Der zweite Fehler ist derjenige, der wirklich darauf hinweist, indem er sagt, dass Ihnen eine schließende Klammer für den VariableInitializer fehlt.