【问题标题】:'externalptr' error in R using XML data使用 XML 数据的 R 中的“externalptr”错误
【发布时间】:2012-01-12 20:11:23
【问题描述】:

我正在使用 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 r


【解决方案1】:

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】:

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

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

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2015-04-29
        • 2014-09-03
        • 1970-01-01
        • 2018-04-18
        • 1970-01-01
        • 2012-01-02
        • 2013-12-29
        • 1970-01-01
        • 2017-10-14
        相关资源
        最近更新 更多