在 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 文本中的表格数据了。

Java 使用 XPath 提取 HTML 表格数据

原文地址: https://www.cveoy.top/t/topic/qmYa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录