我有以下jsFiddle
我正在尝试使用JSoup来获取第238行的超链接' href
字符串的值:
<a href="/chain/admin/config/editRepository.action?planKey=AB-CSD&repositoryId=28049450">
因此,期望的结果是获得值为:
的String/chain/admin/config/editRepository.action?planKey=AB-CSD&repositoryId=28049450
这是我的代码:
Document doc = Jsoup.connect("http://myapp.example.com/fizz.html").get()
Elements elems = doc.getElementsByAttributeValueContaining("href", "repositoryId")
当我运行时,elems
的值为空:为什么,我需要做什么才能获得所需的字符串?
答案 0 :(得分:1)
在这种情况下,getElementsByAttributeValueContaining()
方法将返回多个值,因为许多hrefs
具有repositoryId。如果您特别关注第238行,那么a
会被li
括在item item-default
类中。其中只有一个li
和两个标签。就像第一个那样拿
String html = "<li class=\"item item-default\" data-item-id=\"28049450\" id=\"item-28049450\">"
+ "<a href=\"/chain/admin/config/editRepository.action?planKey=AB-CSD&repositoryId=28049450\">"
+ "<h3 class=\"item-title\">MCAppRepo <span class=\"item-default-marker grey\">(default)</span></h3>"
+ "</a>"
+ "<a href=\"/chain/admin/config/confirmDeleteRepository.action?planKey=AB-CSD&repositoryId=28049450\" class=\"delete\" title=\"Remove repository\">"
+ "<span class=\"assistive\">Delete</span>"
+ "</a>"
+ "</li>";
Document doc = Jsoup.parse(html);
Elements elems = doc.select("li.item.item-default > a");
System.out.println(elems.first().attr("href"));