无法使用jsoup java来获取属性名称中具有空格的属性值,而是获取空字符串

时间:2018-09-22 10:02:38

标签: java jsoup

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

  

2015年7月30日下午03: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仍返回空字符串。

2 个答案:

答案 0 :(得分:0)

您可以尝试查看是否可行:

d3.select("span[data-original-title]").get(0).attr("data-original-title")

说明:

这将查找第一个包含属性“ data-original-title”的跨度,并获取该属性的值。

答案 1 :(得分:0)

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

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

使用:

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