2017-11-30 3 views
1

Ich versuche, Informationen von einer bestimmten Website mit JSOUP zu analysieren. Bis jetzt kann ich eine einzelne Zeile analysieren und anzeigen, da die Website viel HTML hat und ich ziemlich neu bin. Ich frage mich, ob es eine Möglichkeit gibt, alle Tabellenzeilen auf der Seite mit dem Wort "fixture" zu analysieren.JSOUP Parsing für mehrere Zeilen

Hier ist mein Parsercode:

Document doc =Jsoup.connect("http://www.irishrugby.ie/club/ulsterbankleagueandcup/fixtures.php").get(); 
    Elements kelime = doc.select("tr#fixturerow0"); 
    for(Element sectd:kelime){ 
     Elements tds = sectd.select("td"); 

       String result = tds.get(0).text(); 
       String result1 = tds.get(1).text(); 
       String result2 = tds.get(2).text(); 
       String result3 = tds.get(3).text(); 
       String result4 = tds.get(4).text(); 
       String result5 = tds.get(5).text(); 
       String result6 = tds.get(6).text(); 
       String result7 = tds.get(7).text(); 


       System.out.println("Date: " + result); 
       System.out.println("Time: " + result1); 
       System.out.println("League: " + result2); 
       System.out.println("Home Team: " + result3); 
       System.out.println("Score: " + result4); 
       System.out.println("Away Team: " + result5); 
       System.out.println("Venue: " + result6); 
       System.out.println("Ref: " + result7); 

    }` 

Vielen Dank für Ihre Zeit!

+1

Also, wenn ich es richtig verstehe, sind Sie in der Lage, Zeile mit ID zu extrahieren, aber jetzt wollen Sie alle Zeilen erhalten, die ein Wort enthält? – ajc

+0

Genau, obwohl das Problem unten gelöst wurde. Vielen Dank! –

Antwort

4

Sie können die ^= (starts-with) Wähler:

Elements kelime = doc.select("tr[id^=fixturerow]"); 

Diese alle Elemente mit einer ID zurück, die mit fixturerow beginnt.

+0

Leichte Korrektur, ich denke der obige Selektor sollte lesen: 'tr [id^= fixturerow]' – glytching

+0

@glyching Ja, Tippfehler. Vielen Dank! – BackSlash

+1

Danke Jungs, die das Problem gelöst hat! –

0

Möglicherweise haben Sie mehr Glück, wenn Sie einen Selektor verwenden, der nach IDs sucht, die Start-with der Text von Interesse ist. So versuchen

Wechsel
Elements kelime = doc.select("tr#fixturerow0"); 

zu

Elements kelime = doc.select("tr[id^=fixturerow]"); 

Wo ^= bedeutet, dass der Text von Interesse mit dem Text beginnt, die folgt.

+1

Vielen Dank für Ihre Hilfe, die funktioniert hat! –

+0

Gern geschehen. Ich war ein paar Minuten zu langsam. 1+ zum Backslash –