我正在使用Jsoup进行HTML解析,但由于Jsoup不支持Xpath选择器,因此我使用Xsoup,这是Jsoup使用Xpath作为选择器。 在github的自述文件页面中:给出的例子:
@Test
public void testSelect() {
String html = "<html><div><a href='https://github.com'>github.com</a></div>" +
"<table><tr><td>a</td><td>b</td></tr></table></html>";
Document document = Jsoup.parse(html);
String result = Xsoup.compile("//a/@href").evaluate(document).get();
Assert.assertEquals("https://github.com", result);
List<String> list = Xsoup.compile("//tr/td/text()").evaluate(document).list();
Assert.assertEquals("a", list.get(0));
Assert.assertEquals("b", list.get(1));
}
有人可以解释在此代码中需要更改的内容才能正常工作。我已经确保添加了必需的库asertj.jar和jsoup.jar
答案 0 :(得分:1)
以下是有效的独立代码段:
import java.util.List;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import us.codecraft.xsoup.Xsoup;
public class TestXsoup {
public static void main(String[] args){
String html = "<html>
<div> <a href='https://github.com'>github.com</a> </div>
<table><tr>
<td>a</td>
<td>b</td>
</tr></table>
</html>";
Document document = Jsoup.parse(html);
List<String> filasFiltradas = Xsoup.compile("//tr/td/text()").evaluate(document).list();
System.out.println(filasFiltradas);
}
}
输出:
[a, b]
图书馆包括: