java циклы Elements
Не могу разложить элементы в БД каждый в свой столбец:
Document doc = Jsoup.connect("https://some.site/").get();
Elements one = doc.getElementsByClass("selection-name");
Elements two = doc.getElementsByClass("value_one");
Elements thee = doc.getElementsByClass("some_count");
for (Element name : one.subList(0, Math.min(10, one.size()))) {
RatingDb ratingDb = new RatingDb();
ratingDb.setName(name.text());
for (Element rats : two.subList(0, Math.min(10, two.size()))) {
ratingDb.setRating(rats.text());
for (Element look : three.subList(0, Math.min(10, three.size()))) {
ratingDb.setLook(look.text());
}
}
ratingRepo.save(ratingDb);
}
Беда прям с этими циклами. Работает только Element name, остальные заполняются последними значениями.
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
for (Element name : one.subList(0, Math.min(10, one.size()))) {
for (Element rats : two.subList(0, Math.min(10, two.size()))) {
for (Element look : three.subList(0, Math.min(10, three.size()))) {
RatingDb ratingDb = new RatingDb(); // <--- !!!
ratingDb.setName(name.text());
ratingDb.setRating(rats.text());
ratingDb.setLook(look.text());
ratingRepo.save(ratingDb); // <--- !!!
}
}
}
Автор решения: kent
→ Ссылка
Коряво, за то сам)
Elements names = doc.getElementsByTag("a");
Elements rating = doc.getElementsByClass("tag-count badge badge-info");
for (int i = 0, namesSize = names.size(); i < namesSize; i++) {
Element name = names.get(i);
RatingDb ratingDb = new RatingDb();
ratingDb.setName(name.text());
for (int j = i, ratingSize = rating.size(); j < ratingSize;) {
Element rats = rating.get(j);
ratingDb.setRating(rats.text());
ratingRepo.save(ratingDb);
break;
}
}

