【问题标题】:Load XML to DataFrame in R将 XML 加载到 R 中的 DataFrame
【发布时间】:2013-11-21 21:42:56
【问题描述】:

我是 R 编程新手,正在尝试加载一个简单的 XML。我试过了

data <- xmlToDataFrame("temp.xml")

但收到此错误

xmlToDataFrame(xmlParse(doc), colClasses, homogeneous, collectNames, 中的错误: 在为函数“xmlToDataFrame”选择方法时评估参数“doc”时出错:错误:XML 内容似乎不是 XML:“temp.xml”`

XML 架构

<root>
  <row Id="1" UserId="1" Name="Rohit" Date="2009-06-29T10:28:58.013" />
  <row Id="2" UserId="3" Name="Rohit" Date="2009-06-29T10:28:58.030" />
</root>

我也试过了:

xml <- xmlParse("temp.xml")

输出:

错误:XML 内容似乎不是 XML:'temp.xml'

我的 XML 文件在同一个工作目录中。

另外,如果您想尝试,我已在此处上传示例 XML:http://www4.ncsu.edu/~rkandha/temp.xml
请提供一些关于我应该在这里使用哪个功能的指导。

【问题讨论】:

  • 请发布您的代码。
  • 已更新。虽然我还没有做过什么大事。
  • as.data.frame(xmlToList(xml))
  • 我试过了,但结果格式不同

标签: xml r xml-parsing


【解决方案1】:

这应该可行:

text ='<root>
  <row Id="1" UserId="1" Name="Rohit" Date="2009-06-29T10:28:58.013" />
  <row Id="2" UserId="3" Name="Rohit" Date="2009-06-29T10:28:58.030" />
</root>'

library(XML)
do.call(rbind,xmlToList(xmlParse(file=text,asText=TRUE)))
    Id  UserId Name    Date                     
row "1" "1"    "Rohit" "2009-06-29T10:28:58.013"
row "2" "3"    "Rohit" "2009-06-29T10:28:58.030"

【讨论】:

  • 谢谢。这运作良好。我对此还有其他问题,如何为 xml 选择特定列。例如。如果我只想加载 ID 和 Name 而不是 XML 的所有字段。
  • 查看 ?xpathSApply 并了解如何创建 xpath 查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 2021-05-02
  • 1970-01-01
  • 2016-04-27
  • 2013-10-06
  • 2019-10-30
相关资源
最近更新 更多