Error de método no aplicable al usar Jsoup en código Java personalizado
Pregunta
Tengo problemas al usar Jsoup en un tJavaRow
componente en Talend.
Aquí está mi trabajo:
A través de tLibraryLoad
cargo el .jar
archivos para Jsoup y la biblioteca java.io.File y luego importarlos al tJavaRow_2
componente:
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;
Y luego intente ejecutar el siguiente código en la parte principal del 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;};
Me parece lógico hasta ahora.Pero me sale este error:
¿Puedes ayudarme a resolver este problema?No entiendo qué hacer a partir de este momento.
APÉNDICE:Código Java que funciona en 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());
}
}
Solución
Te estás perdiendo un soporte de cierre en su bloque de código.Su primera línea debe ser:
Document document = Jsoup.parse(new File("C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8");
Como es, está construyendo un archivo desde la ruta "C:/Talend/workspace/WEBCRAWLER/output/keywords_" + context.keywordname +".txt"), "utf-8"
y luego pase ese objeto de archivo (no será un objeto de archivo adecuado, pero por alguna razón, el compilador no ha visto esto) al método de análisis.de jsoups.
Mirando a Documentación de JSOUP La única llamada de método para analizar eso es una solaEl valor es cuando pasa un documento HTML en una cadena.Por lo que está esperando una cadena y en su lugar obtiene un archivo (roto).
El segundo error es el que realmente señala esto diciendo que le falta un soporte de cierre para el VariableInitializer.