В настоящее время я работаю над небольшим API погоды (от YR.NO) на Java.Java - attributevalue from parents child
API представлен в XML-формате, как показано ниже:
ПРИМЕЧАНИЕ. В одном API есть несколько таких «ящиков», просто другое время на них.
Whole XML shown
<time datatype="forecast" from="2016-09-08T21:00:00Z" to="2016-09-08T21:00:00Z">
<location altitude="47" latitude="59.3293235" longitude="18.0685808">
<temperature id="TTT" unit="celsius" value="12.0"/>
<windDirection id="dd" deg="121.8" name="SE"/>
<windSpeed id="ff" mps="2.2" beaufort="2" name="Svak vind"/>
<windGust id="ff_gust" mps="3.7"/>
<humidity value="80.5" unit="percent"/>
<pressure id="pr" unit="hPa" value="1016.0"/>
<cloudiness id="NN" percent="51.6"/>
<fog id="FOG" percent="-0.0"/>
<lowClouds id="LOW" percent="51.2"/>
<mediumClouds id="MEDIUM" percent="0.0"/>
<highClouds id="HIGH" percent="0.8"/>
<dewpointTemperature id="TD" unit="celsius" value="8.8"/>
</location>
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException
{
for (int i = 0; i < attributes.getLength(); i++)
{
String attributeName = attributes.getLocalName(i);
String attributeValue = attributes.getValue(i);
System.out.println(attributes.getLocalName(i) + " : " + attributes.getValue(i));
//if(attributeValue.toLowerCase().indexOf(timeCheck.toLowerCase()) != -1)
// {
// System.out.println("Temperature: " + attributes.getValue(i));
// }
}
С этим^я могу легко отобразить все имена с их значениями, но я не могу понять, как управлять им. То, что я в настоящее время является строкой, которая сохраняет введенный пользователь, как:
String timeCheck = "T"+timeUserInput;
(Если я вход 15, то timeCheck становится «T15»)
, а затем проверить, если некоторое значение получает этот вход для примера «T21» с этим внутри для петли:
if(attributeValue.toLowerCase().indexOf(timeCheck.toLowerCase()) != -1)
, а затем, если это правда, я хочу, чтобы напечатать значение температуры, которое в данном случае является «12,0», но я не могу показаться, чтобы найти легкий способ Делать это. Я могу распечатать ВСЕ значения температуры, но я ТОЛЬКО хочу значение температуры в нужное время.
Пробовал, что мне лучше объяснить мою проблему, недавно начатую с Java, спасибо заранее! Если вам нужно объяснение всего, просто скажите мне, и я попробую.
Как вы разбираетесь? XPath? SAX? DOM? JAXB? Как вы застряли? Пожалуйста, улучшите этот вопрос, если это вообще возможно. Я предполагаю, что вы действительно хотите использовать JAXB для преобразования XML в действительные объекты, но я совсем не уверен. –
@HovercraftFullOfEels Я использую SAXParser. Я застрял, потому что не знаю, как получить только это конкретное значение. Я проверю, что делает JAXB! – Widdin
@HovercraftFullOfEels Нравится это: http://imgur.com/PSIF3Zj – Widdin