Java Jsoup从li处获得超链接
我有 我想获取href和文本 所以我做了 元素xx=选择div div ul li 当我为y做每个xx时,如果我做了 string1=y.text//我是汤姆 String2=y.attrref//此字段始终为空。我找不到/托马斯? 我还尝试了y.attra[href] 还有什么是: doc.select.studentnames>a;? 这是否意味着ID=studentnames上的所有元素都得到了正确的a??如果您只需执行eles=doc.selecta[href];?而且我相信当使用属性时。。。方法,则不传入标记,只传入属性名称本身 编辑: 你说:Java Jsoup从li处获得超链接,java,jsoup,Java,Jsoup,我有 我想获取href和文本 所以我做了 元素xx=选择div div ul li 当我为y做每个xx时,如果我做了 string1=y.text//我是汤姆 String2=y.attrref//此字段始终为空。我找不到/托马斯? 我还尝试了y.attra[href] 还有什么是: doc.select.studentnames>a;? 这是否意味着ID=studentnames上的所有元素都得到了正确的a??如果您只需执行eles=doc.selecta[href];?而且我相信当使用属性时
做doc.selecta[href]的问题…有很多属性和href..我只想要学生名字旁边的那一个..这就是为什么我在做文本后立即做的原因,这样我就可以得到学生的名字和他的网站 然后通过顺序调用多个选择或链接它们来优化选择返回的结果:
<div id = top1>
<div id topsub1>
<ul class="student">
<li>
<a href="/thomas">Tom</a>
</li>
</div>
<div id topsub2>
<ul class="student">
<li>
<a href="/thomas1">Tom1</a>
</li>
</div>
</div>
或许我从来没有这样做过:
Elements eles = doc.select("ul.student").select("a[href]");
甚至:
Elements eles = doc.select("ul.student a[href]");
这是您的错误:
一,。您的第一个选择是仅获取div div ul li,以便元素仅包含li标记。因此,您可以采用以下任一方法:
获取每个元素
从选择查询中获取:
我想提到的是,请不要使用Element.text来获取标记内的数据,因此在本例中,它是li。调试时,应使用Element.html或Elements.html
二,。关于你的担忧:
还有什么是:doc.select.studentnames>a?
这是否意味着ID=studentnames上的所有选项都是正确的
。是类,而是id。
此外,>是直接子对象
因此,您的查询意味着:返回所有的a标记,该标记是类等于'studentnames'的标记的直接子级
关于它的更多细节,您应该检查一下您的html代码与裸div的代码看起来很混乱。考虑编辑和更新HTML代码,使我们更容易理解。做doc.SelpTa[HeRF]的问题。有很多很多属性和HFREST…我只想在学生名字旁边。这就是为什么我在做课文后马上做的事情,这样我就能得到学生和他的网站的名字。
Elements eles = doc.select("div > div > ul.student > li > a[href]");
for (Element x: yy) {
Element aTag = x.child(0);
// or it can be aTag = x.select("a[href]").first();
// Do your stuff here !
}
Elements yy = doc.select("div div ul li a[href]");