我使用JSoup来解析一些HTMLL信息,我想解析特定div属性的aria标签值。我试图解析的行如下:
<div class="tiny-star star-rating-non-editable-container" aria-label=" Rated 5 stars out of five stars ">
我使用了以下内容:
Document document = Jsoup.connect(url).get();
Elements stars= document.select("div.tiny-star star-rating-non-editable-container[aria-label]");
String value = stars.text();
System.out.println("The rating is " + value);
但是,String值返回空白。为什么是这样?
答案 0 :(得分:1)
那个选择表达不会给你你所期望的。它被视为两部分选择器
div.tiny-star
- 找到包含课程div
tiny-star
元素
star-rating-non-editable-container[aria-label]
- 然后查找具有star-rating-non-editable-container
属性的后代aria-label
元素尝试更像
的内容Element divWithStars = document.select(
"div.tiny-star.star-rating-non-editable-container[aria-label]");
String ariaLabel = divWithStars.attr("aria-label");
请注意tiny-star
和star-rating-...
之间的点而不是空格,以及select
返回承载aria-label属性的元素的事实,不是属性本身 - 您必须使用attr
来提取属性值。