На основании this Ответ Dirk Eddelbuettel Я пытаюсь прочитать файл xml
из архива zip
для дальнейшей обработки. Помимо URL и имен файлов, единственное изменение в указанном коде - это то, что я изменил read.table
на xmlInternalTreeParse
.Использование R для загрузки и чтения zipped-файла xml
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' требует имя файла (как символ) в соответствии с документацией. – MrFlick
Хмм, я никогда не понимал, что такое связь. Поэтому мне, вероятно, нужно преобразовать соединение в вектор символов с 'readLines' или что-то подобное. – Tungurahua