java - jSoup 从 <td><span> 类获取文本

标签 java parsing jsoup

我有以下格式的 html 文件的一部分

<td class="yfnc_tabledata1">20,000</td>
<td class="yfnc_tabledata1">19,500</td>
<td class="yfnc_tabledata1"><span><span>19,000</span></span> - <span><span>19,600</span></span></td>
<td class="yfnc_tabledata1"><span>18,000</span> - <span>26,000</span></td>

还有其他跨度类。但我只想得到低于 3 的值,它将被插入到数据库中。

19,500

19,000

19,600

我已经尝试过:

Elements elements = doc.select(".yfnc_tabledata1");
            for(Element e : elements) {
                System.out.println(e.text());                                           
            }

甚至我也尝试过

doc.select(".yfnc_tabledata1").select("span");

还是不行,请帮忙。

最佳答案

如果您尝试仅解析 html 的一部分以选择 td 标记,则至少需要在开头添加 table 和 tr 标记。示例:

public class NewClass7 {

public static void main(String[] args)  {
String html = "<table>\n" +
                "<tr>" + 
                "<td class=\"yfnc_tabledata1\">20,000</td>\n" +
                "<td class=\"yfnc_tabledata1\">19,500</td>\n" +
                "<td class=\"yfnc_tabledata1\"><span><span>19,000</span></span> - <span><span>19,600</span></span></td>\n" +
                "<td class=\"yfnc_tabledata1\"><span>18,000</span> - <span>26,000</span></td>";

Document document = Jsoup.parse(html);
    Elements tds = document.select("td");
        for (Element e : tds) {
            if(e.text().startsWith("19"))
            System.out.println(e.text());
        }
}

}

关于java - jSoup 从 <td><span> 类获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38049776/

相关文章:

Java更改另一个类中的静态变量不会影响对象值

从 HTTP 输入流构建时 Javax xml 解析器卡住

html - 在 HTML 中访问 <li> 元素

Python 字符串赋值问题!

javascript - 以字符串格式在页面源上执行 javascript 选择器

android - JSoup 解析 : get next element

java - jsoup 发送带有域和路径的 cookie

java - 带波形符的 URL 的 Maven groupId

java - 从文本文件输入到数组

sql - 数据库中的日期格式在 vb.net 中获取错误的日期