В настоящее время у меня есть ~20 000 XML-файлов размером от пары КБ до нескольких МБ. Хотя это может быть не идеально, я использую функцию «xmlTreeParse» в пакете XML для циклического просмотра каждого из файлов и извлечения текста, который мне нужен, и сохранения документа в виде файла csv.
Код ниже отлично работает для файлов размером ‹1 МБ:
files <- list.files()
for (i in files) {
doc <- xmlTreeParse(i, useInternalNodes = TRUE)
root <- xmlRoot(doc)
name <- xmlValue(root[[8]][[1]][[1]]) # Name
data <- xmlValue(root[[8]][[1]]) # Full text
x <- data.frame(c(name))
x$data <- data
write.csv(x, paste(i, ".csv"), row.names=FALSE, na="")
}
Проблема в том, что любой файл> 1 МБ дает мне следующую ошибку:
Excessive depth in document: 256 use XML_PARSE_HUGE option
Extra content at the end of the document
Error: 1: Excessive depth in document: 256 use XML_PARSE_HUGE option
2: Extra content at the end of the document
Пожалуйста, простите мое невежество, однако я пытался найти функцию «XML_PARSE_HUGE» в пакете XML и не смог ее найти. Кто-нибудь имел опыт использования этой функции? Если это так, я был бы очень признателен за любые советы о том, как заставить этот код обрабатывать XML-файлы немного большего размера.
Спасибо!