我有一个html表&想要根据特定条件提取链接文本
<table border="0" cellpadding="3" cellspacing="0" width="100%">
<tbody>
<tr class="dir"><td colspan="2"> <a href="http://xyz/">Yogendra sharma</a></td></tr>
<tr>
<td class="f"><a href="abc">abc</a> </td>
<td>
<tt class="con">
<a class="s" href="mno"><span class="l">7</span> mno <b>Hello</b>;</a>
<br>
</tt>
</td></tr>
<tr class="dir"><td colspan="2"> <a href="http://xyz/">Yogendra</a></td></tr>
<tr>
<td class="f"><a href="abc">abc</a> </td>
<td>
<tt class="con">
<a class="s" href="mno"><span class="l">7</span> mno <b>Hello</b>;</a>
<br>
</tt>
</td></tr>
</table>
我想打印所有第一个链接文本,即Yogendra Sharma&amp; Yogendra的html文件。
这个文件很大。
我使用java和jsoup,但不能搞清楚。 请帮帮我。
答案 0 :(得分:1)
您可以尝试以下代码。您需要commons-io-1.3.2.jar
,jsoup.jar
。将html保存为项目的根文件夹中的sample.html
。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import org.apache.commons.io.IOUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class ExtractFromHTML {
public static void main(String[] args) throws IOException {
File input = new File("sample.html");
InputStream in = new FileInputStream(input);
String htmlOut = IOUtils.toString(in);
Document document = Jsoup.parse(htmlOut);
Elements elementsA = document.select("a");
Iterator<Element> elementIterator = elementsA.iterator();
while (elementIterator.hasNext()) {
Element aElement = elementIterator.next();
if (aElement.outerHtml().contains("http://xyz/")) {
System.out.println(aElement.text());
}
}
}
}
输出:
Yogendra sharma
Yogendra