【问题标题】:Using R to save API XML "response" to .xml file使用 R 将 API XML“响应”保存到 .xml 文件
【发布时间】:2014-03-29 19:00:48
【问题描述】:

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

> GET("@987654321@",authenticate("[user]","[pass]"))

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>

我希望能够将此响应解析为基于 XML 标记的表,但我似乎无法找到从该输出创建 XML 文件的方法(我会手动创建,但失败了这条路我将需要这个函数来进行更多的 API 调用。如果我将此输出传递给一个对象(例如,object <- GET()),则对象类是response,我不知道如何处理它。我'我不是 R 的新手,但我刚刚开始涉足 http 和 API 调用,所以 R 的这个方面对我来说是新的。另外,如果这篇文章的格式不正确,我深表歉意(代码跨度似乎没有正在预览中工作)。

【问题讨论】:

  • 只是评论:如果该页面要求您通过 HTTP 发送用户名和密码,我希望这些凭据一点也不重要。如果没有 HTTPS,它们会以纯文本形式发送,并且对您和服务器之间的每个人都可见。
  • 谢谢,Thomas- 我不知道!幸运的是,凭证和 API 调用并不是特别敏感——但这在文档中没有明确说明!绝对是一个不幸的遗漏!

标签: xml r api xml-parsing


【解决方案1】:

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

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

【讨论】:

  • 你太棒了。这非常有效。我为我缺乏专业知识而道歉。感谢您的及时帮助!
猜你喜欢
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多