我很难阅读带有德语变音符号(ä、ü、ö)和其他特殊字符的 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)
}
}