我正在运行这个 for 循环:
for (i in 1:length(file_list)){
doc <- read_xml(file_list[i])
xml_ns(doc)
ns <- xml_find_all(doc, xpath_person, xml_ns(doc))
items<-xml_find_all(doc, "//d1:REPORT/d1:People/d1:ACRSPERSON")
nodenames<-xml_name(xml_children(items))
contents<-trimws(xml_text(xml_children(items)))
if (length(items) >0) {
itemindex<-rep(1:length(items), times=sapply(items, function(x) {length(xml_children(x))}))
person1<-data.frame(itemindex, nodenames, contents)
#Convert from long to wide format
person<- pivot_wider(person1, id_cols= itemindex, names_from = nodenames,
values_from = contents) # %>% unnest(cols = c(A, B, C, D))
out_person <- rbind.fill(out_person,person )
}
但是,当我一次运行所有代码时(在降价中 - 感觉它在常规 rscript 中工作) - 我收到以下错误。
**Error in read_xml.character(file_list[i]) : Document is empty [4]**
我尝试添加一些休息时间,但没有奏效。
for (i in 1:length(file_list)){
doc <- read_xml(file_list[i])
xml_ns(doc)
ns <- xml_find_all(doc, xpath_person, xml_ns(doc))
items<-xml_find_all(doc, "//d1:REPORT/d1:People/d1:ACRSPERSON")
nodenames<-xml_name(xml_children(items))
contents<-trimws(xml_text(xml_children(items)))
if (length(items) >0) {
itemindex<-rep(1:length(items), times=sapply(items, function(x) {length(xml_children(x))}))
person1<-data.frame(itemindex, nodenames, contents)
#Convert from long to wide format
person<- pivot_wider(person1, id_cols= itemindex, names_from = nodenames,
values_from = contents) # %>% unnest(cols = c(A, B, C, D))
out_person <- rbind.fill(out_person,person )
if (is.null(file_list[i])){
break
}
}
}
我该如何解决这个问题,以便 for 循环正确运行。当 file_list
中没有更多项目时,for 循环成功关闭。还是有其他原因导致了问题?
谢谢。