[英]Get elements from HashMap in Java?
我目前有以下代碼,該代碼從網頁獲取表格,並將元素放入HashMap(我認為)。
Document doc = Jsoup.connect(
"http://www.sportinglife.com/greyhounds/abc-guide").get();
Element tableHeader = doc.select("tbody").first();
Map<String, String> data = new HashMap<>();
for (Element element : tableHeader.children()) {
// Here you can do something with each element
if (element.text().indexOf("Pelaw Grange") > 0
|| element.text().indexOf("Shawfield") > 0
|| element.text().indexOf("Shelbourne Park") > 0
|| element.text().indexOf("Harolds Cross") > 0) {
// do nothing
} else {
String dog = element.select("td:eq(0)").text();
String race = element.select("td:eq(1)").text();
data.put(dog, race);
}
}
analyseRunners(data);
}
這似乎行得通,現在我需要它運行另一個方法“ analyseRunners”,在該方法中,它需要遍歷每條狗,並使用該“狗”名稱來訪問另一個有另一個表的網頁。 到目前為止,這就是我所擁有的...
String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + dog;
Document doc1 = Jsoup.connect(dogPage).get();
int firsts = 0, seconds = 0, thirds = 0;
Element tblHeader = doc1.select("tbody").first();
for (Element element1 : tblHeader.children()){
String position = element1.select("td:eq(4)").text();
if (position.equals("1st")){
firsts++;
} else if (position.equals("2nd")){
seconds++;
} else if (position.equals("3rd")){
thirds++;
} else {
//do nothing
}
}
System.out.println("Firsts: " + firsts);
System.out.println("Seconds: " + seconds);
System.out.println("Thirds: " + thirds);
如您所見,我正在嘗試使用上述第一種方法中的“狗”導航到jSoup中的網頁...這不起作用,因為它說“狗”無法解析。 我該如何從HashMap中獲取狗的名字,並循環遍歷每只狗以計算出它的第1個,第2個和第3個? (此頁的第五列: http : //www.gbgb.org.uk/raceCard.aspx?dogName=A%20Real%20Legend )
在循環中使用狗名在數據映射上:
for(String dog : data.keySet())
{
// use dog as required
}
首先,迭代地圖的密鑰列表並獲取可用的狗。 然后在其中處理您的邏輯。
for (String dog: data.keySet()) { String dogPage = "http://www.gbgb.org.uk/raceCard.aspx?dogName=" + dog; Document doc1 = Jsoup.connect(dogPage).get(); .................... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.