如何从 div 标签属性解析 Aria-Label?
How to parse Aria-Label from a div tag attribute?
我正在使用 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 值,returns 为空。为什么是这样?
那个选择器表达式不会给你你所期望的。它被视为由两部分组成的选择器
div.tiny-star
- 查找具有 class tiny-star
的 div
元素
star-rating-non-editable-container[aria-label]
- 然后寻找具有 aria-label
属性 的后代 star-rating-non-editable-container
元素
试试更像
Element divWithStars = document.select(
"div.tiny-star.star-rating-non-editable-container[aria-label]");
String ariaLabel = divWithStars.attr("aria-label");
注意 tiny-star
和 star-rating-...
之间的点而不是 space,以及 select
returns 元素承载 aria-label 属性 ,而不是属性本身 - 您必须使用 attr
来提取属性值。
我正在使用 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 值,returns 为空。为什么是这样?
那个选择器表达式不会给你你所期望的。它被视为由两部分组成的选择器
div.tiny-star
- 查找具有 classtiny-star
的 star-rating-non-editable-container[aria-label]
- 然后寻找具有aria-label
属性 的后代
div
元素
star-rating-non-editable-container
元素
试试更像
Element divWithStars = document.select(
"div.tiny-star.star-rating-non-editable-container[aria-label]");
String ariaLabel = divWithStars.attr("aria-label");
注意 tiny-star
和 star-rating-...
之间的点而不是 space,以及 select
returns 元素承载 aria-label 属性 ,而不是属性本身 - 您必须使用 attr
来提取属性值。