我很难阅读带有德语变音符号(ä,ü,ö)和其他特殊字符的XML文件。奇怪的是,当只使用'readLines()'时,R设法正确读入文件。但是,只要函数'get.all.text()'的xmlEventParse部分在处理函数'sE2()','eE2()'和'tS2'的帮助下完成'gather.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)
}
}