Метод неприменим ошибка при использовании Jsoup в пользовательском коде Java
Вопрос
У меня возникли проблемы с использованием Jsoup в tJavaRow
компонент в Talend.
Вот моя работа:
Через tLibraryLoad
Я загружаю .jar
файлы для Jsoup и библиотеки файлов java.io., а затем импортируйте их в tJavaRow_2
компонент:
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;
А затем попробуйте запустить следующий код в основной части 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;};
Пока что это кажется мне логичным.Но я получаю эту ошибку:
Можете ли вы помочь мне решить эту проблему?Я не понимаю, что делать с этого момента.
приложение:Java-код, который работает в 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());
}
}
Решение
В вашем блоке кода отсутствует закрывающая скобка.Ваша первая строка должна быть такой:
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");
Как бы то ни было, вы создаете файл по пути "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8"
а затем просто передайте этот файловый объект (это не будет правильный файловый объект, но по какой-то причине компилятор этого не заметил) методу синтаксического анализа Jsoup.
Глядя на Документация Jsoup единственный вызов метода для синтаксического анализа, который представляет собой одно значение, - это когда вы передаете ему HTML-документ в виде строки.Таким образом, он ожидает строку и вместо этого получает (поврежденный) файл.
Вторая ошибка - это та, которая действительно указывает на это, говоря, что вам не хватает закрывающей скобки для VariableInitializer.