使用XML数据的R中的'externalptr'错误

时间:2011-12-04 23:11:45

标签: xml r

我正在处理R中的一些XML数据并遇到类型'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

3 个答案:

答案 0 :(得分:6)

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的每个节点。

答案 1 :(得分:2)

我设法使用saveXML()包中的XML命令将XML树的内容写入文件:

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

希望这有帮助。

答案 2 :(得分:0)

我知道这是一个旧线程,但是要详细了解外部指针,我认为了解何时使用它很重要。 thread告诉xmlParse和xmlTreeParse之间的区别,何时使用它,以及它如何工作(指针与对象)。