使用R将API XML“响应”保存到.xml文件

时间:2014-02-26 18:28:52

标签: xml r api xml-parsing

我正在使用www.onetonline.org上的API数据。输出采用XML格式,但API不会生成离散的XML文件。这是一个示例呼叫/响应:

> GET("http://services.onetcenter.org/ws/mnm/careers/17-2051.00/report",authenticate("[user]","[pass]"))

>

我希望能够将此响应解析为基于XML标记的表,但我似乎无法找到从此输出创建XML文件的方法(我会这样做)手动,但在未来我将需要此函数用于更多的API调用。如果我将此输出传递给对象(例如,Response [http://services.onetcenter.org/ws/mnm/careers/17-2051.00/report] Status: 200 Content-type: application/vnd.org.onetcenter..srv.onet.services.ws.mnm.career.report+xml <?xml version="1.0" encoding="utf-8"?> <report code="17-2051.00"> <career> <code>17-2051.00</code> <title>Civil Engineers</title> <tags bright_outlook="true" green="true" apprenticeship="false" /> <also_called> <title>Civil Engineer</title> <title>Engineer</title> </career> </report> ),对象类是Response [http://services.onetcenter.org/ws/mnm/careers/17-2051.00/report],并且我&#39;我不确定如何处理。我不是R的新手,但我刚刚开始涉足http和API调用,所以R的这个方面对我来说是新的。另外,我道歉,如果这篇文章的格式不合适(代码范围似乎没有在预览中起作用)。

1 个答案:

答案 0 :(得分:2)

无法测试,因为网址需要身份验证,但这是从http响应中提取内容的常用方法:

library("XML")
library("httr")
response <- GET(...)
xml <- xmlInternalTreeParse(content(response,type="text"))