Java 使用 XPath 提取 HTML 表格数据
在 Java 中,您可以使用 Jsoup 库来解析 HTML 并使用 XPath 来提取表格数据。以下是一个示例代码:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
public class XPathExample {
public static void main(String[] args) {
String html = "<html>
" + "<body>
" + "<table>
" + "<tr>
" + "<th>姓名</th>
" + "<th>年龄</th>
" + "</tr>
" + "<tr>
" + "<td>张三</td>
" + "<td>20</td>
" + "</tr>
" + "<tr>
" + "<td>李四</td>
" + "<td>25</td>
" + "</tr>
" + "</table>
" + "</body>
" + "</html>";
Document document = Jsoup.parse(html);
try {
XPathFactory xPathFactory = XPathFactory.newInstance();
XPath xPath = xPathFactory.newXPath();
// 通过 XPath 选择所有的表格行
XPathExpression xpathExpr = xPath.compile("//table/tr");
Elements rows = (Elements) xpathExpr.evaluate(document, XPathConstants.NODESET);
// 遍历每一行,并提取单元格数据
for (Element row : rows) {
Elements cells = row.select("td");
for (Element cell : cells) {
System.out.println(cell.text());
}
}
} catch (XPathExpressionException e) {
e.printStackTrace();
}
}
}
在上述示例中,我们首先使用 Jsoup 库将 HTML 解析为一个 Document 对象。然后,我们使用 XPath 选择所有的表格行,并遍历每一行提取单元格数据。最后,我们通过调用 cell.text() 打印每个单元格的文本内容。
请注意,您需要在项目中添加 Jsoup 库的依赖。您可以在 Maven 项目中添加以下依赖:
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
这样,您就可以使用上述代码来提取 HTML 文本中的表格数据了。
原文地址: https://www.cveoy.top/t/topic/qmYa 著作权归作者所有。请勿转载和采集!