如何读取文件夹中XML文件并将文件名存入数据列表?
解决方案
步骤1:获取XML文件路径
list.files本身返回的是字符向量,不是数据列表。首先要精准筛选出文件夹里的XML文件,同时获取完整路径方便后续读取:
# 匹配后缀为.xml的文件,full.names=TRUE返回完整路径 xml_files <- list.files(path = ".", pattern = "\\.xml$", full.names = TRUE)
步骤2:读取XML文件到带名称的列表
需要用XML读取工具(推荐xml2包,更简洁现代),遍历文件路径读取内容,再为列表元素设置名称:
# 安装并加载xml2包(首次使用需安装) install.packages("xml2") library(xml2) # 读取所有XML文件到列表 xml_data_list <- lapply(xml_files, read_xml) # 为列表元素设置名称(两种可选方案) # 方案1:用不带后缀的文件名当名称(如a、b、c) names(xml_data_list) <- tools::file_path_sans_ext(basename(xml_files)) # 方案2:用带后缀的文件名当名称(如a.xml、b.xml) # names(xml_data_list) <- basename(xml_files)
替代方案(使用XML包)
如果你习惯用老牌的XML包,代码可以换成:
install.packages("XML") library(XML) xml_data_list <- lapply(xml_files, xmlParse) names(xml_data_list) <- tools::file_path_sans_ext(basename(xml_files))
处理完成后,xml_data_list就是你需要的带名称的数据列表,比如可以通过xml_data_list$a直接访问a.xml的内容。
内容的提问来源于stack exchange,提问作者Dimitris Karditsas
相关产品推荐
相关产品推荐

