【发布时间】:2014-07-29 08:07:58
【问题描述】:
根据 Dirk Eddelbuettel 的this 回答,我正在尝试从zip 存档中读取xml 文件以进行进一步处理。除了 URL 和文件名之外,对引用代码的唯一更改是我将 read.table 更改为 xmlInternalTreeParse。
library(XML)
temp <- tempfile()
download.file("http://epp.eurostat.ec.europa.eu/NavTree_prod/everybody/BulkDownloadListing?sort=1&downfile=data%2Fnrg_105a.sdmx.zip",temp)
doc <- xmlInternalTreeParse(unz(temp, "nrg_105a.dsd.xml"))
fileunlink(temp)
closeAllConnections()
但是,这会返回以下错误:
Error in file.exists(file) : invalid 'file' argument
traceback()表明这是来自解析器的函数调用。所以 temp 在这种情况下似乎是一个不恰当的参考。有没有办法让它工作?
【问题讨论】:
-
xmlInternalTreeParse的工作方式似乎与read.table不同。根据文档,read.table可以使用连接对象,xmlInternalTreeParse需要文件名(作为字符)。 -
嗯,我从来没有真正理解什么是连接。所以我可能需要使用
readLines或类似的东西将连接转换为字符向量。