Je n'arrive pas à charger dans un fichier html local, en utilisant la bibliothèque Jsoup. Ou à tout le moins, il ne semble pas le reconnaître. J'ai codé en dur le code html exact dans le fichier local (comme le var 'html') et quand je passe à cela au lieu d'une entrée de fichier, le code fonctionne parfaitement. Mais le fichier est lu à chaque fois.Comment charger un fichier html local dans Jsoup?
import java.io.File;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class FileHtmlParser{
public String input;
//constructor
public FileHtmlParser(String inputFile){input = inputFile;}
//methods
public FileHtmlParser execute(){
File file = new File(input);
System.out.println("The file can be read: " + file.canRead());
String html = "<html><head><title>First parse</title><meta>106</meta> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head>"
+ "<body><p>Parsed HTML into a doc.</p>" +
"" +
"<div id=\"navbar\">this is the div</div></body></html>";
Document doc = Jsoup.parseBodyFragment(input);
Elements content = doc.getElementsByTag("div");
if(content.hasText()){System.out.println("result is " + content.outerHtml());}
else System.out.println("nothing!");
return this;
}
}/*endOfClass*/
Résultat lorsque:
Document doc = Jsoup.parseBodyFragment (html)
The file can be read: true
result is <div id="navbar">
this is the div
</div>
Résultat lorsque:
Document doc = Jsoup.parseBodyFragment (entrée)
The file can be read: true
nothing!
Non qui ne soit fait l'affaire. –
Mise à jour: dans ma réponse originale, j'ai passé par erreur la chaîne '' input'' à la place de l'objet '' File'' '' in''. Aussi, vous devrez envelopper le code dans un bloc '' try-catch'' pour le faire fonctionner. – holygeek
Merci! Le swap d'une chaîne à un type de fichier a travaillé un charme. –