我有一个由工具生成的HTML,所以我无法控制它。当我尝试使用jsoup从html中提取值时,我面临着识别元素的挑战,因为他们没有为它定义id。
<table width="45%" border="0">
<tr bgcolor="#666666">
<td width="45%" height="24"><strong><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">Risk Level</font></strong></td><td width="55%" align="center"><strong><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">Defects</font></strong></td>
</tr>
<tr bgcolor="#e8e8e8">
<td><font size="2" face="Arial, Helvetica, sans-serif"><a href="#first">First</a></font></td><td align="center"><font size="2" face="Arial, Helvetica, sans-serif">0</font></td>
</tr>
<tr bgcolor="#e8e8e8">
<td><font size="2" face="Arial, Helvetica, sans-serif"><a href="#second">Second</a></font></td><td align="center"><font size="2" face="Arial, Helvetica, sans-serif">5</font></td>
我需要找到td标签后面带有Value First的td标签的值(它是0,我需要找到它)和Second(再次需要找到5)。
任何帮助都将不胜感激。
答案 0 :(得分:1)
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Main {
public static void main(String[] args) {
// SET the URL
String url = "http://localhost/parser.html";
try {
// Obtain the HTML
Document doc = Jsoup.connect(url).get();
// Get font tag in every second td tag
Elements tdsFont = doc.select("td:nth-child(2n) > font");
for (Element element : tdsFont) {
System.out.println(element.text());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}