我正在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
最佳答案
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的每个节点。