2011-12-04 14 views
10

我正在使用R中的一些XML數據並且遇到類型爲'externalptr'的錯誤。使用XML數據的R中的'externalptr'錯誤

1)我嘗試使用xmlInternalTreeParse()函數(XML包的一部分)時出現以下錯誤。

doc = xmlInternalTreeParse(xmldatavariable) 
    'Error in as.vector(x, "character") : cannot coerce type 'externalptr' 
to vector of type 'character'' 

2)當我嘗試將XML數據寫入文本文件時,出現此錯誤,我可以查看它並查看錯誤可能是什麼。

write(xmldatavariable,"sample.txt") 
Error in cat(list(...), file, sep, fill, labels, append) : 
     argument 1 (type 'externalptr') cannot be handled by 'cat' 

有什麼建議嗎?謝謝 - Z

+0

你在上一個問題上得到的工作代碼有什麼問題?你不是在簡單地使用它嗎? –

+0

最後一個問題的代碼適用於樣本數據。它不適用於實際數據較大的程序。我確信我錯誤地使用了它,我只是不知道自己做錯了什麼。 – user1080253

+3

您可能想要了解XML包的一些示例。 –

回答

5

XML包的工作原理是讓您試圖操作的XML文檔的指針文檔。

'externalptr'只是xml文檔中數據的外部指針。

要訪問你需要使用

Parsed.xml <- xmlTreeParse(xml) ## should be string with xml text 
## get value of the first node 
xmlValue(xml[[1]]) 
## get value of the third grandchild of the first node 
xmlValue(xml[[1]][[45]][[3]]) 

您需要訪問XML的每個節點列表中的數據。

2

我設法使用saveXML()命令從XML包寫一個XML樹的一個文件中的內容:

saveXML(xml[[1]], file="output.xml") 

希望這有助於。