1

我很难阅读带有德语变音符号(ä、ü、ö)和其他特殊字符的 XML 文件。奇怪的是,R 仅在使用“readLines()”时就能够正确读取文件。然而,一旦函数 'get.all.text()' 的 xmlEventParse 部分在处理函数 'sE2()'、'eE2()' 和 'tS2' 的帮助下完成构建 'collected.text' ,所有特殊字符都被破坏。似乎在每个字符之前都插入了中断。

XML 文件显示 '?xml version="1.0" encoding="iso-8859-1"?' 在第一行。但是,我认为这应该不是问题,因为“readLines()”函数可以正确读取文本。

你们对我如何进行有任何指示吗?

谢谢!

get.all.text <- function (file) {
  read.file <- paste(readLines(file), collapse = " ")
  assign("collected.text", c(), env = .GlobalEnv)
  assign("get.text", F, env = .GlobalEnv)
  xmlEventParse(read.file, asText = T, list(startElement = sE2,
                                            endElement = eE2,
                                            text = tS2),
                error = function (...) { },
                saxVersion = 1)
  head(collected.text)
}

sE2 <- function (name, attrs) {
  if (name == "s") {
    get.text <<- T }
}

eE2 <- function (name, attrs) {
  if (name == "s") {
    get.text <<- F
  }
}

tS2 <- function (content, ...) {
  if (get.text & nchar(content) > 0) {
    collected.text <<- c(collected.text, content)
  }
}
4

0 回答 0