2012-01-25 97 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

太好了。非常感謝您的幫助。 –