从多个 XML 文件创建文本数据框

Creating a text data frame from multiple XML files

我正在尝试在 R 中创建一个数据框,其中包含来自多个 xml 文件的文本。我试图创建一个读取 xmls 并使用 xml2 包中的 xml_text 的函数。这是我的代码:

read_texts <- function(folder) {
  dir_ls(folder, glob = "*.xml") %>%
  map_dfr(
  read_xml(.) %>%
  xml_text(., trim = TRUE) %>%
  tibble()
)
}

read_texts_n <- Vectorize(read_texts)


read_texts_n("forfatterskab")

当我这样做时,我仍然收到错误消息:

Error: `x` must be a string of length 1

如何获取加载文件的代码。目的是制作一个包含所有文本的数据框。我没有使用 XML.

的经验

我认为您不需要 Vectorize 您的功能,因为您正在使用 map_dfr

尝试使用以下函数。

library(xml2)

read_texts <- function(folder) {
  list.files(folder, pattern = '\.xml$', full.names = TRUE) %>%
    map_dfr(~.x %>% read_xml() %>% xml_text(trim = TRUE) %>%tibble())
}


result <- read_texts_n("forfatterskab")

我唯一的疑问是您传递文件夹名称的方式。通常,我希望您将完整的文件夹路径传递给该函数。类似于 read_texts_n('Users/username/folder_name').