2012-01-25 133 views
1

我有一个XML文件DemoFeed.XML,并试图使用XML包和函数xmlToDataFrame将其导入数据框。但是我得到一个错误信息:错误:XML的内容似乎并不为XML,也不来识别文件名将XML文件导入数据框

<demo_feed> 
<TimeStamp>20090610153000</TimeStamp> 
<XAU Bid="952.2" Ask="953.0"/> 
<XAG Bid="15.17" Ask="15.22"/> 
<XPT Bid="1266" Ask="1271"/> 
<XPD Bid="256" Ask="261"/> 
<EUR Bid="1.3993" Ask="1.3996"/> 
</demo_feed> 

我将是你的帮助表示感谢。

亲切的问候,

亚当

+1

你是怎么调用这个函数的?它需要一个文件名(或一个已经解析过的XML文档),并且错误信息说没有这样的文件。另外,它只会检索节点的内容,而不是它们的属性:可能需要一些更多的工作。 –

+0

我还没有尝试过,但你可以使用[XML包](http://cran.r-project.org/web/packages/XML/index.html) – Justin

+2

这不是以干净的方式格式化xmlToDataFrame期望得到,所以你需要使用xmlTreeParse来代替。 – Hansi

回答

4

汉斯的评论是正确的。这是一种方法:

> doc = xmlParse('demofeed.xml') 
> data.frame(t(xpathSApply(doc, 
     '/demo_feed/*[@Bid]', 
     function(x) c(name=xmlName(x), xmlAttrs(x))))) 

    name Bid Ask 
1 XAU 952.2 953.0 
2 XAG 15.17 15.22 
3 XPT 1266 1271 
4 XPD 256 261 
5 EUR 1.3993 1.3996 
+0

太好了。非常感谢您的帮助。 –