2016-04-17 6 views
-1

Was ist meine Schuld?jsoup select verwendet nicht das ganze html?

Android Code:

ArrayList<String> plan_table = new ArrayList<>(); 
Element table = doc.select("table").get(1); //First Table: Untis Banner and School Data (Adress, etc.); Second Table: Plan -> So load second plan (index 1) 
Elements rows = table.select("tr"); 
Log.i("SchollgymPlanThread","This are the rows: "+rows.toString()); 

for (int i = 1; i < rows.size(); i++) { //first row is the col names so skip it 
    Element row = rows.get(i); 
    Elements cols = row.select("td"); 
    //Log.i("SchollgymPlanThread", cols.get(0).text()); 
    plan_table.add(cols.get(0).text()); 
    if (Pattern.matches("^Klasse .*",cols.get(0).text())) {PlanParsed.put(cols.get(0).text(), new LinkedHashMap<String,List>()); current_class=cols.get(0).text();continue;} 
      if (current_class != null) { 
       List<String> tmpList = new ArrayList<String>(); 
       for (int i2 = 1; i2 < cols.size(); i2++) { 
        if (i2 == 2) {continue;} //If Lessons Hour , continue -> Lesson our will be put as key and not in the list 
        tmpList.add(cols.get(i2).text()); 
       } 
       Log.i("SchollgymPlanThread", tmpList.toString()); 
       if (cols.size() < 2) {continue;} 
       PlanParsed.get(current_class).put(cols.get(2).text(), tmpList); //ParsedPlan[current_class] = {lesson_hour:lesson_attributes} 
      } 

      //if (row.className() == "list odd") {Log.i("SchollgymPlanThread","This is a class: "+cols.get(0).text());} 
      //if (cols.get(7).text().equals("down")) { 
      // plan_table.add(cols.get(5).text()); 
      //} 

ich nicht den ganzen Java-Code einzufügen habe, aber das ist, wo ich mein Problem bekommen ... in Zeile 4 druckt er den HTML-Code mit dem TDs und tr ist, aber es hört plötzlich auf. Die letzte Zeile der Ausgabe ist:

<td cla 

Gibt es etwas falsch? Ich habe bereits die Quellwebsite überprüft ...

+0

Die Logcat verwendet einen Puffer, wahrscheinlich füllen Sie es. Versuchen Sie, in eine Datei zu drucken, um zu sehen, ob die Ausgabe immer noch in der Mitte abgeschnitten wird. – TDG

+0

Ich werde es versuchen. Danke im Vorteil – famemaker

+0

Ist dein Problem gelöst? Wenn ja, bitte überlege, die Antwort zu akzeptieren. Wenn nicht, formulieren Sie bitte Ihr Problem um, damit wir besser verstehen, wie Sie helfen können. – luksch

Antwort

0

Wie liest du in der html mit Jsoup? Ich frage, weil Sie die Größenbeschränkung des geladenen Dokuments treffen können. Jsoup limitiert auf 1M, wenn nicht anders über die maxBodySize() Methode angegeben. So können Sie dies tun:

Document doc = Jsoup.connect("YOUR_URL").maxBodySize(0).get(); 
+0

Ich benutze das URL-Objekt und dann passiere ich zu Jsoup. Ich werde die Connect-Methode versuchen – famemaker