【发布时间】:2020-11-27 17:13:49
【问题描述】:
使用 xml2,我编写了一个代码,它将我正在使用的 xml 文件转换为所需的数据帧。我现在需要对文件夹中的其他 1218 个 xml 文件重复此操作。但是,我正在努力找出从哪里开始。我知道我需要列出文件:
files <- list.files(pattern = ".xml$")
然后将需要一个循环或 Sapply,但我不确定如何。任何建议将不胜感激。
到目前为止的代码:
xmlimport <- read_xml("16770601.xml")
class(xmlimport)
trialaccounts <- xmlimport %>% xml_find_all('//div1[@type="trialAccount"]')
defendants=NULL
for(i in 1:length(trialaccounts)) {
trialid <- trialaccounts[[i]] %>% xml_attr("id")
year <- trialaccounts[[i]] %>% xml_find_first('.//interp[@type="year"]') %>% xml_attr("value")
genderdefendants <- trialaccounts[[i]] %>%
xml_find_all('.//persName[@type="defendantName"]/interp[@type="gender"]') %>%
xml_attr("value")
descrip <- trialaccounts[[i]] %>%
xml_find_all('.//persName[@type="defendantName"]') %>%
xml_text(trim=TRUE)
verdict <- trialaccounts[[i]] %>%
xml_find_all('.//interp[@type="verdictCategory"]')%>% xml_attr("value")
context <- xml_text(trialaccounts[[i]])
for(j in 1:length(genderdefendants)) {
defendants <- defendants %>%
bind_rows(tibble(defendantid=i,trial_id=trialid,year_tried=year,description=descrip,verdict_result=verdict,info=context,gender=genderdefendants[j]))
}
}
【问题讨论】: