有人能推荐一个Java库,允许我在URL上进行XPath查询吗?我已经尝试过JAXP,但没有成功。
谢谢。
有人能推荐一个Java库,允许我在URL上进行XPath查询吗?我已经尝试过JAXP,但没有成功。
谢谢。
网络上有几种不同的方法可以实现这个功能:
使用Jericho
我尝试了几种不同的方法,比如HtmlParser加上Java DOM解析器,以及JSoup加上Jaxen,但是表现最好的组合是HtmlCleaner加上Java DOM解析器。次好的组合是Jericho加上Jaxen。
jsoup,Java HTML解析器非常类似于jQuery语法方式。
Xsoup
。根据文档,它比 HtmlCleaner
更快。示例 @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));
}
链接至 Xsoup - https://github.com/code4craft/xsoup