目前我有大约 20,000 个 XML 文件,大小从几 KB 到几 MB 不等。虽然它可能并不理想,但我使用 XML 包中的“xmlTreeParse”函数来循环遍历每个文件并提取我需要的文本并将文档保存为 csv 文件。
下面的代码适用于小于 1 MB 的文件:
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 MB的文件都会给我以下错误:
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 包中搜索“XML_PARSE_HUGE”函数,但似乎找不到。有没有人有使用这个功能的经验?如果是这样,我将非常感谢有关如何让此代码处理稍大的 XML 文件的任何建议。
谢谢!