如何从div标签属性解析Aria-Label?

时间:2015-02-02 17:50:39

标签: java html parsing jsoup

我使用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值返回空白。为什么是这样?

1 个答案:

答案 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-starstar-rating-...之间的点而不是空格,以及select返回承载aria-label属性的元素的事实,不是属性本身 - 您必须使用attr来提取属性值。