Android 如何使用Jsoup获取直接从父元素派生的子元素?
使用Jsoup获取网站。该网站有多个div类,例如:Android 如何使用Jsoup获取直接从父元素派生的子元素?,android,jsoup,Android,Jsoup,使用Jsoup获取网站。该网站有多个div类,例如: <div class="itemcategories"> Category: <a id="cat_result_7_newamerican" class="category" rel="newamerican" href="/search?cflt=newamerican&find_loc=willowbrook%2C+IL">American (New)</a> </div>
<div class="itemcategories">
Category: <a id="cat_result_7_newamerican" class="category" rel="newamerican" href="/search?cflt=newamerican&find_loc=willowbrook%2C+IL">American (New)</a>
</div>
<div class="itemcategories">
Categories:
<a id="cat_result_6_breakfast_brunch" class="category" rel="breakfast_brunch" href="/search?cflt=breakfast_brunch&find_loc=willowbrook%2C+IL">Breakfast & Brunch</a>,
<a id="cat_result_6_tradamerican" class="category" rel="tradamerican" href="/search?cflt=tradamerican&find_loc=willowbrook%2C+IL">American (Traditional)</a>
</div>
直接从div class=“itemcategories”父级派生的每个子元素都存储在categories元素对象的下一个索引中。所以我无法确定哪些孩子属于哪些父母。有没有办法“连接”每个div类的所有子类,并将它们保存在元素对象的单独索引中?分两步进行如何
Elements parents = doc.select("div.itemcategories");
for (Element parent : parents)
{
Elements categories = parent.select("a.category");
// do something with categories
}
注意使用.foo
而不是[class=foo]
选择器语法
N.B.我对jsoup的API不太熟悉,因此此代码可能不完全正确。除了@Matt Ball solution之外,我还想出了一个步骤解决方案:
// Select the parent's
categories = doc.select(".itemcategories");
然后只需使用children()方法获取子对象,使用text()方法获取所需文本:
categories.get(counter).children().text();
谢谢你的及时回复。它帮助我创建了另一个一步解决方案。好吧,我不会确切地称之为一步
:P
categories.get(counter).children().text();