2016-03-21 4 views
1

RESTFUL WebService api.met.noからRを使用して気象データを取得しようとしています。XML RESTサービスからデータを取得して表示するR

DATAはXML形式です。 XMLファイルからいくつかの値を表示したい

APIからデータをフェッチして表示しようとします。

<temperature id="TTT" unit="celsius" value="2.8"/> 

私はこれらの技術にかなり新しいです。私が知りたい

はTempretureのようにそれを表示するには、とにかくあり= 2.8

は、ここであなたがほとんど存在し、私のコード

rootnode <- xmlRoot(result) 
rootsize <- xmlSize(rootnode) 
print(rootsize) 
rootnode <- xmlRoot(result) 
print(rootnode[[2]][[1]]) 
print(rootnode[[2]][[1]][[1]][[1]]) 

答えて

0

です。 XML PackagexmlToList関数を使用して、指定されたノードからすべての属性を分割できます。ここで指定したAPIから温度を取得するためのコード:

# Install and load required packages 
install.packages("XML") 
require("XML") 

# Save the URL of the xml file in a variable 
metUrl <- "http://api.met.no/weatherapi/locationforecast/1.9/?lat=60.10;lon=9.58" 

# Parse xml file directly from the API 
xmlMetResponse <- xmlParse(metUrl) 

# Access the top node 
xmlMetTop <- xmlRoot(xmlMetResponse) 

# Make a list of the desired subnode 
metResponseDesiredNode <- xmlToList(xmlMetTop[[2]][[1]][[1]][[1]]) 

# Get temperature ("value") from desired subnode 
metTemperature <- as.numeric(metResponseDesiredNode["value"]) 

xmlToListは簡単に名前またはインデックス値

1

を使用してアクセスすることができるベクトルを返しますそれとも、ただに設計されたRパッケージを使用することができますこれを行う:

library(weatherr) 

forecast <- locationforecast(lat=60.10, lon=9.58) 

str(forecast) 
## 'data.frame': 89 obs. of 14 variables: 
## $ time    : POSIXct, format: "2016-03-22 00:00:00" "2016-03-22 01:00:00" ... 
## $ temperature  : num 0.6 0.6 0.6 0.7 1.3 2 3.1 3.9 4.5 5.1 ... 
## $ windDirection  : num 342.1 277 269.8 308.3 31.1 ... 
## $ windSpeed_mps  : num 0.7 0.3 0.4 0.7 0.6 0.5 0.6 1.4 1.6 1.2 ... 
## $ windSpeed_beaufort : num 1 0 0 1 1 0 1 1 1 1 ... 
## $ windSpeed_name  : Factor w/ 4 levels "Flau vind","Lett bris",..: 1 3 3 1 1 3 1 1 1 1 ... 
## $ windGust   : num 0.7 0.3 0.4 0.7 0.7 1.2 1.7 2.7 3 2.5 ... 
## $ humidity   : num 79.3 86.7 88.8 81 80.5 75.7 70.8 70.8 70.1 66.2 ... 
## $ pressure   : num 1006 1006 1006 1006 1006 ... 
## $ cloudiness   : num 76.6 72.8 68.9 66.4 59.5 40.7 77.7 81.1 96 96.8 ... 
## $ lowClouds   : num 18.7 34.4 39.9 22.5 6 0.3 0.5 3.7 17.1 41.2 ... 
## $ mediumClouds  : num 32.6 30.1 18.2 3.2 0.8 0.1 0 0 0 0.1 ... 
## $ highClouds   : num 62.1 48.7 42.5 55.4 56.8 40.4 77.6 80.8 95.8 94.5 ... 
## $ dewpointTemperature: num -2.7 -1.5 -1.3 -2.4 -1.8 -2 -1.9 -1.1 -0.7 -0.9 ... 
関連する問題