У меня есть код, который перебирает список файлов xml и обрабатывает их. Когда я выполняю код для одного xml, результат является ожидаемым. Но когда я запускаю цикл, в разных файлах возникают непредвиденные ошибки. Файл ошибки изменяется на каждой итерации, поэтому нет шаблона для поиска ошибки.
Бывший. отдельный файл:
p_xml <- function(file)
{
tmp<-tryCatch(
{
(read_xml(path_XML))
},error=function(e)
{
return(NA)
})
if(is.na(tmp))
{
file <- read_xml(path_XML, encoding = "ISO-8859-1")
}else{
file <- tmp
}
id <- as.numeric(xml_attr(file, "id"))
year_id <- as.numeric(xml_attr(file, "machine_year"))
....
return(data)
}
Этот код правильно возвращает таблицу data.table. Но если я выполню эту функцию внутри цикла:
global_dt<-data.table()
for(j in 1:length(file_names))
{
current_file <- file_names[j]
f <- p_xml(file.path(current_dir,current_file))
global_dt<-rbind(global_dt,f)
}
Я получаю такую ошибку:
- Ошибка в doc_parse_file (con, encoding = encoding, as_html = as_html, options = options): не удалось проанализировать /path/file.xml *
Дело в том, что если я затем выполню единственный код с неудачным файлом, он вернет то, что я ожидал. Я использую библиотеку xml2 для чтения файлов