选择特定div标签中的href

时间:2013-11-11 23:26:12

标签: html parsing jsoup

我需要选择div标签中存在的锚标签,其中id = content。 我在java中使用了以下代码

Element lin = doc.getElementById("tag#content");
Elements links = lin.select("a[href]");

但是当我调试程序时,lin = Null。

我也试过下面的代码,但是lin仍然是空的。

Elements lin = doc.select("div#content");
Elements links = lin.select("a[href]");

这是我的HTML:

<div id="content">
<ul class="nolist">
<li><a href="/undergraduate/"><h3>Undergraduate Study</h3></a></li>
<li><a href="/graduate/"><h3>Graduate Study</h3></a></li>
<li><a href="/currentstudents/course/current/"><h3>Courses</h3></a></li>
</ul>
</div>

任何帮助都将不胜感激。谢谢

3 个答案:

答案 0 :(得分:0)

你试过这个:

Element lin = doc.getElementById("tag#content");

答案 1 :(得分:0)

Elements links = doc.select("div#content > ul > li > a");

for (Element e : links) {
       System.out.println(e.attr("href"));
}

将输出:

/undergraduate/
/graduate/
/currentstudents/course/current/

关于你的评论,我试过这个:

String html = "<div id='content'><ul class='nolist'><li><a href='/undergraduate/'><h3>Undergraduate Study</h3></a></li><li><a href='/graduate/'><h3>Graduate Study</h3></a></li><li><a href='/currentstudents/course/current/'><h3>Courses</h3></a></li></ul></div>";
Document doc = Jsoup.parse(html);
Elements e = doc.select("div#content a");
System.out.println(e.toString());

Elements f = doc.select("div#content > ul > li > a");
System.out.println(f.toString());

得到了这个输出:

<a href="/undergraduate/"><h3>Undergraduate Study</h3></a>
<a href="/graduate/"><h3>Graduate Study</h3></a>
<a href="/currentstudents/course/current/"><h3>Courses</h3></a>
<a href="/undergraduate/"><h3>Undergraduate Study</h3></a>
<a href="/graduate/"><h3>Graduate Study</h3></a>
<a href="/currentstudents/course/current/"><h3>Courses</h3></a>

答案 2 :(得分:0)

对不起家伙我使用了错误的网址。 以下代码有效 doc.select("div#content a"); 但是doc.select("div#content > ul > li > a");给了我任何理由为什么?