我正在尝试从 html 文件中提取文本和链接。目前我可以使用 JSoup 轻松提取两者,但我只能单独进行。
这是我的代码:
try {
doc = (Document) Jsoup.parse(new File(input), "UTF-8");
Elements paragraphs = ((Element) doc).select("td.text");
for(Element p : paragraphs){
// System.out.println(p.text()+ "\r\n" + "***********************************************************" + "\r\n");
getGui().setTextVers(p.text()+ "\r\n" + "***********************************************************" + "\r\n");
}
Elements links = doc.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
getGui().setTextVers("\n\n"+link.text() + ">\r\n" +linkHref + "\r\n");
}
}
我在最外面有文本的 td 上放置了一个 .text 类。我想要实现的是:当程序找到带有 .text 类的 td 时,它会检查它是否有任何链接并按顺序从该部分中提取它们。所以你会:
文本
链接
文本
链接
我尝试将每个循环的内部放入第一个 foreach 循环中,但这只打印了页面的完整链接列表,有人可以帮忙吗?
最佳答案
尝试
Document doc = (Document) Jsoup.parse(new File(input), "UTF-8");
Elements paragraphs = ((Element) doc).select("td.text");
for (Element p : paragraphs) {
System.out.println(p.text());
Elements links = p.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
System.out.println("\n\n" + linkText + ">\r\n" + linkHref + "\r\n");
}
}
关于java - JSoup 从 html 文件中按顺序解析文本和链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516207/