我如何使用jsoup来解析此HTML中的特定整数值?

时间:2015-03-03 05:13:37

标签: java jsoup

我是第一年从事某个项目的cs学生,我需要从网站上获取温度日期。我试图用Jsoup来做这件事,但我发现缺乏关于入门的好教程。这是我试图解析的HTML。

    <span class="actual-temp ng-isolate-scope ng-binding" aria-label="Actual Temperature" data-wx-temperature="obs.getTemp()" data-show-temp-unit="true">
        <!-- ngIf: hasValue() -->
        <span data-ng-if="hasValue()" data-ng-bind-template="32" class="ng-scope ng-binding">32</span>
        <!-- end ngIf: hasValue() -->
        <!-- ngIf: hasValue() -->
        <sup data-ng-if="hasValue()" class="deg ng-scope">°</sup>
        <!-- end ngIf: hasValue() -->
        <!-- ngIf: showTempUnit -->
        <sup class="temp-unit ng-scope ng-binding" data-ng-if="showTempUnit" data-ng-bind-template="F">F</sup>

具体来说,我试图从中提取数字32。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

根据您提供的一小段代码,可以提取温度。您可能需要修改代码才能使用完整的HTML。 (为简单起见,故意省略所有检查或优化)

Document doc = Jsoup.parse("<span class=\"actual-temp ng-isolate-scope ng-binding\" aria-label=\"Actual Temperature\" data-wx-temperature=\"obs.getTemp()\" data-show-temp-unit=\"true\">\n"
        + "        <!-- ngIf: hasValue() -->\n"
        + "        <span data-ng-if=\"hasValue()\" data-ng-bind-template=\"32\" class=\"ng-scope ng-binding\">32</span>\n"
        + "        <!-- end ngIf: hasValue() -->\n"
        + "        <!-- ngIf: hasValue() -->\n"
        + "        <sup data-ng-if=\"hasValue()\" class=\"deg ng-scope\">°</sup>\n"
        + "        <!-- end ngIf: hasValue() -->\n"
        + "        <!-- ngIf: showTempUnit -->\n"
        + "        <sup class=\"temp-unit ng-scope ng-binding\" data-ng-if=\"showTempUnit\" data-ng-bind-template=\"F\">F</sup>\n"
        + "   </span>");
Elements rows = doc.getElementsByAttributeValue("class", "ng-scope ng-binding");
String temperature;
for (Element span : rows) {
        temperature = span.text();
}
System.out.println("temperature = " + temperature);