Erreur de méthode non applicable utilisant Jsoup dans le code Java personnalisé
Question
J'ai des problèmes pour utiliser Jsoup dans un tJavaRow
composant dans Talend.
Voici mon travail :
À travers tLibraryLoad
je charge le .jar
fichiers pour Jsoup et la bibliothèque java.io.File, puis importez-les dans le tJavaRow_2
composant:
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;
Et puis essayez d'exécuter le code suivant dans la partie principale du 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;};
Cela me semble logique jusqu'à présent.Mais j'obtiens cette erreur :
Pouvez-vous m'aider à résoudre ce problème ?Je ne comprends pas quoi faire à partir de ce moment.
ANNEXE:Code Java qui fonctionne dans Eclipse :
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());
}
}
La solution
Il vous manque une parenthèse fermante dans votre bloc de code.Votre première ligne devrait être :
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");
Dans l'état actuel des choses, vous créez un fichier à partir du chemin "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8"
puis transmettez simplement cet objet fichier (ce ne sera pas un objet fichier approprié mais pour une raison quelconque, le compilateur ne l'a pas repéré) à la méthode d'analyse de Jsoup.
Regarder Documentation de Jsoup le seul appel de méthode pour analyser une valeur unique est lorsque vous lui transmettez un document HTML dans une chaîne.Il attend donc une chaîne et obtient à la place un fichier (cassé).
La deuxième erreur est celle qui le souligne vraiment en disant qu'il vous manque un crochet fermant pour VariableInitializer.