2012-12-28 17 views
5

Ok bene ho utilizzato Jsoup per analizzare HTML da URL remoti utilizzando:Android - usando Jsoup con android_asset file html

Jsoup.connect(url).timeout(20000).get(); 

Ora sto cercando di leggere i file HTML locali che ho memorizzati nella cartella assets . Ho fatto molte ricerche ma non riesco a trovare una soluzione. Sul Jsoup example - Load a Document from a File, dicono a effettuare le seguenti operazioni:

File input = new File("/tmp/input.html"); 
Document doc = Jsoup.parse(input, "UTF-8", "http://example.com/"); 

Da quello che ho letto, il percorso per il mio file sarebbe - file:///android_asset/results_2009.html.

enter image description here

Tuttavia ho sempre no such file or directory, così come faccio a ottenere un file locale in Jsoup?

Devo utilizzare AssetManager o qualcosa del genere? Per favore qualcuno può indicarmi la giusta direzione.

risposta

9

Jsoup.parse() ha un overload which takes an InputStream. È possibile utilizzare il AssetManager per ottenere un InputStream al file e usarlo:

InputStream is=null; 

try { 
    is=getAssets().open("results_2009.html"); 
    Document doc = Jsoup.parse(is, "UTF-8", "http://example.com/"); 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    if(is!=null) 
     is.close(); 
} 
+0

congettura che avrei dovuto leggere la documentazione API Jsoup: s – Neil

Problemi correlati