2015-03-03 39 views
0

我是第一个cs学生,在一个项目上工作,我需要从网站获取温度日期。我试图用Jsoup来做到这一点,但我发现缺乏入门教程。这里是我试图解析的HTML。我将如何去使用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。任何帮助将不胜感激!

+2

让我看看迄今为止所做的工作。我们将从那里开始。 – 2015-03-03 05:29:04

+0

这里有一个很棒的jsoup教程:http://jsoup.org/cookbook/ – 2015-03-03 05:32:54

回答

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);