首页 > 解决方案 > 无法使用 jsoup java 获取属性名称中包含空格的属性值,而不是获取空字符串

问题描述

我是 jsoup 的新手,并试图获取“title data-original-title”属性的属性值,但得到一个空字符串。我想要价值

2015 年 7 月 30 日下午 3:26:13

<table class="table table-hover">
<thead>
<tr style="border-color: #E1E1E1; border-width: 1px; background-color: #F9F9F9; border-top-style: solid;">
<th>Height</th>
<th>Age</th>
<th>txn</th>
<th>Uncles</th>
<th>Miner</th>
<th>GasUsed</th>
<th>GasLimit</th>
<th>Avg.GasPrice</th>
<th>Reward</th>
</tr>
</thead>
<tbody>
<tr><td></td>
<td>
**<span rel="tooltip" data-placement="bottom" title="" data-original-title="Jul-30-2015 03:26:13 PM">1149 days 18 hrs ago</span>**
</td>

我的代码是

for (int i = total_pages; i >= 1; i--) {
            System.out.println("\nDisplaying blocks on page " + i);
            String newString = "https://etherscan.io/blocks?p=" + i;
            Document d3 = Jsoup.connect(newString).get();
            Elements e = d3.select("table.table-hover > tbody");
            Elements r = e.get(0).select("tr");

           for (Element cr : r) {
            Elements test = d3.select("span");
            System.out.println(test.attr("data-original-title"));

            }
        }

任何帮助,将不胜感激。我修改了属性值以获取数据放置值,并且它被正确检索。但是 data-original-title 仍然返回空字符串。

标签: javajsoup

解决方案


数据属性是一种特殊的属性,因此访问它们有点不同,但仍然非常容易。代替

System.out.println(test.attr("data-original-title"));

利用:

System.out.println(test.first().dataset().get("original-title"));

推荐阅读