0

我需要选择 id=content 的 div 标签中存在的锚标签。我在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>

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

4

3 回答 3

0

你试过这个:

Element lin = doc.getElementById("tag#content");
于 2013-11-11T23:30:29.720 回答
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>
于 2013-11-11T23:34:51.000 回答
0

对不起,我使用了错误的 URL。下面的代码有效 doc.select("div#content a"); 但是doc.select("div#content > ul > li > a");给了我 null 任何理由吗?

于 2013-11-12T00:34:13.997 回答