1

この Web ページから日付、距離、フィンの列を取得したいと思います: http://www.gbgb.org.uk/raceCard.aspx?dogName=Ballymac%20Monleekで、そのデータを JavaFX の TableView に表示します。

jSoupを使用して指定された列を選択し、それらの列をTableViewに入れるにはどうすればよいですか?

私の現在のコードは、その Web ページから「Fin」列のみを取得できます。他の 2 つの列を取得する方法を理解するのが難しいと感じています。また、それらを Observable List に入れる方法がわかりません。表形式で表示します。

    Dog dog = (Dog)tblRunners.getSelectionModel().getSelectedItem();
    String selectedDog = dog.getName();

    //getHistory
    String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + selectedDog;
    Document doc1 = Jsoup.connect(dogPage).get();

    Element tblHeader = doc1.select("tbody").first();
    for (Element element1 : tblHeader.children()){
        String position = element1.select("td:eq(4)").text();
        System.out.println("Position: " + position);

}

ありがとうロブ

4

1 に答える 1

0
  1. たとえば、ページ内のデータに POJO を使用します。
public class DogDetail {

    private String date;
    private String distance;
    private String fin;

    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public String getDistance() {
        return distance;
    }
    public void setDistance(String distance) {
        this.distance = distance;
    }
    public String getFin() {
        return fin;
    }
    public void setFin(String fin) {
        this.fin = fin;
    }
}
  1. tblHeader 変数で別の選択パスを使用し、FXCollections.observableArrayList関数を使用して監視可能なリストを作成します。コード:
Element tblHeader = doc1.select("table.MasterTable_Web20 tbody").first();
List<DogDetail> data = new ArrayList<>();
for (Element element1 : tblHeader.children()){
    DogDetail dogDetail = new DogDetail();
    dogDetail.setDate(element1.select("td:eq(0)").text());
    dogDetail.setDistance(element1.select("td:eq(1)").text());
    dogDetail.setFin(element1.select("td:eq(4)").text());
    data.add(dogDetail);
}

TableView<DogDetail> table = new TableView<DogDetail>(FXCollections.observableArrayList(data));
于 2014-10-29T18:06:51.553 に答える