从属性获取特定值

时间:2018-09-03 11:53:51

标签: java jsoup

我需要从具有omouseover属性的元素中获取特定值。我需要文本“ uran voitto%”后面的值,在这种情况下为7.85,但我无法弄清楚该怎么做,因为所有内容都在onmouseover属性内部。 有问题的网站是https://ravit.is.fi/paivanravit/?lahto=147497 元素是

<td id="ohjastaja_info_11" style="cursor: pointer;" class="infolink" onmouseover="return overlib('<table bgcolor=#CCCCCC cellspacing=1 width=250><tr bgcolor=#FFFFFF><td align=right width=30><strong>Vuosi</strong></td><td align=right width=30><strong>Startit</strong></td><td align=right width=30><strong>Voitot</strong></td><td align=right width=30><strong>2.&nbsp;sijat</strong></td><td align=right width=30><strong>3.&nbsp;sijat</strong></td></tr><tr  bgcolor=#FFFFFF align=right><td align=right width=30><strong>18:</strong></td><td align=right width=30>801</td><td align=right width=30>50</td><td align=right width=30>81</td><td align=right width=30>100</td></tr><tr  bgcolor=#FFFFFF align=right><td align=right width=30><strong>17:</strong></td><td align=right width=30>1164</td><td align=right width=30>83</td><td align=right width=30>112</td><td align=right width=30>108</td></tr><tr  bgcolor=#FFFFFF align=right><td align=right width=30><strong>Yht:</strong></td><td align=right width=30>18734</td><td align=right width=30>1470</td><td align=right width=30>1651</td><td align=right width=30>1711</td></tr></table>',  CAPTION, 'Jarmo&nbsp;Saarela&nbsp; - &nbsp; uran voitto% 7,85', BGCOLOR, '#004d80', FGCOLOR, '#EAEAEA',  CAPCOLOR, '#FFFFFF', WIDTH, 250)" onmouseout="nd()">
           J&nbsp;Saarela</td>

希望我足够具体。

1 个答案:

答案 0 :(得分:0)

Jsoup不能独自做到这一点。它无法解析JavaScript片段中的HTML,但是您可以使用正则表达式来获取该单个值。

    String onmouseover = doc.select("td#ohjastaja_info_11").attr("onmouseover");
    Pattern pattern = Pattern.compile("uran voitto% ([\\d,]+)");
    Matcher m = pattern.matcher(onmouseover);
    if (m.find()) {
        System.out.println(m.group(1));
    }