Eurostat 数据可以通过REST API下载。API 的响应格式是根据 SDMX-ML 标准格式化的 XML 文件。使用 SAS,可以非常方便地使用libname
语句和XML
或XMLv2
引擎访问 XML 文件。
目前,我正在使用xmlv2
引擎以及automap=
生成xmlmap
访问数据的选项。有用。但是生成的 SAS 数据集非常非结构化,对于要下载的另一个数据集,数据结构可能会发生变化。此外,请求可能取决于 Eurostat 为不同 XML 文件中的每个数据库项目提供的 DSD 文件。
代码如下:
%let path = /your/working/directory/;
filename map "&path.map.txt";
filename resp "&path.resp.txt";
proc http
URL="http://ec.europa.eu/eurostat/SDMX/diss-web/rest/data/cdh_e_fos/..PC.FOS1.BE/?startperiod=2005&endPeriod=2011"
METHOD="GET"
OUT=resp;
run;quit;
libname resp XMLv2 automap=REPLACE xmlmap=map;
proc datasets;
copy out=WORK in=resp;
run;quit;
使用上面的代码,您可以在您的 WORK 库中查看所有下载的数据。一团糟。
根据 Eurostat 的描述下载另一个时间序列更改 URL 的参数。
所以这是我的问题
有没有一种方法可以轻松地xmlmap
从对 DSD 文件的调用中生成一个,以便数据以结构良好的方式存储?
由于 SDMX-ML 标准广泛用于欧洲央行、欧盟统计局、经合组织等公共机构……我想知道是否有人已经对数据库实施了请求。我知道Banca Italia使用 javaObject 的工具。但是,我想知道是否有没有 javaObject 的解决方案。