Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 选择特定div标记中的href present_Html_Parsing_Jsoup - Fatal编程技术网

Html 选择特定div标记中的href present

Html 选择特定div标记中的href present,html,parsing,jsoup,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[hr

我需要选择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>

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

您是否尝试过:

Element lin = doc.getElementById("tag#content");
这将输出:

/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>

对不起,伙计们,我用错了网址。 下面的代码有效 doc.selectdiva内容;
但是doc.selectdivcontent>ul>li>a;给我null任何原因?

lin仍然是null元素lin=doc.getElementByIdtagcontent;Elements links=lin.selecta[href];仍然为null。这是我运行doc=Jsoup.connectstartink.get的文档;元素链接1=doc.selectdivcontent>ul>li>a;对于元素e:links1{System.out.printlne.attrref;}这是doc.selectdivcontent给我的东西null@user1556718哦,好的,如果我只是将示例html解析为字符串,我的代码就可以工作。尝试打印doc.toString,只是为了检查它是否接收到正确的html。你能分享这个html的网址吗?任何大学网站。例如:syr.edu/admissions/和/或@user1556718现在我明白了为什么divcontent>ul>li>a不起作用了——这是因为在实际页面的divcontent中有另一个div,所以select语句中的层次结构是错误的。相反,你需要divcontent>div>ul>li>a来让它以这种方式工作,尽管divcontent仍然可以工作。嗯,很有趣。我认为这两种方法都应该有效,但我想这取决于html的结构。第一个示例将选择从祖先派生的子元素,例如any和read关于选择器组合。事实上,仅使用您在原始问题Jsoup.parsehtml中提供的html,这两种方法都有效。我刚测试过,看看我的最新答案。
<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>