ドイツ語のウムラウト (ä、ü、ö) やその他の特殊文字を含む 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)
}
}