В настоящее время я просматриваю папку статических XML-файлов (из них тысячи).Ошибка чтения в XML-файле для специального анализа символов
Большинство из них были отформатированы правильно, но есть специальные символы, которые я хотел бы замаскировать. В качестве примера, один XML файл имеет неверный код XML, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
<INQUIRY version="4.0">
<AUTHENTICATION>
<LICENSEKEY>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</LICENSEKEY>
<PASSWORD>YYYYYYYYYYY</PASSWORD>
</AUTHENTICATION>
<QUERY>
<TRACKID>1-1-1</TRACKID>
<TYPE>VALID</TYPE>
<CHANNEL>INTERNET</CHANNEL>
<INQUIRYTYPE>O</INQUIRYTYPE>
<DATA>
<NAME>BARNES & NOBLE</NAME>
</DATA>
</QUERY>
</INQUIRY>
Я пытаюсь поменять на & с кодом:
install.packages("XML")
library(XML)
location <- "C:/Users/Desktop/temp"
filenames=dir(location)
for (i in 1:length(filenames)){
tmp <- gsub("&", "&", readLines(paste0(location,"/",filenames[i])))
data <- xmlParse(tmp)
TMP<-xmlToDataFrame(nodes=getNodeSet(data,"//DATA"))
DATAX_DF<-rbind(TMP,DATAX_DF)
}
в следующем количестве:
Warning message:
In readLines(paste0(location, "/", filenames[i])) :
incomplete final line found on 'C:/Users/Desktop/tmp/1-1-1_req.XML'
Что еще нужно сделать, чтобы заменить амперсанд и/или какие-либо идеи о том, почему он читает последнюю строку как неполную, чтобы я не получал предупреждения?
Тесно связана с http://stackoverflow.com/questions/33447676/rvest-package-read-html-function-stops-reading-at-symbol/33447817 # 33447817 –
Это недопустимый XML-файл. Вы можете протестировать его с помощью [валидатора] (http://www.xmlvalidation.com/). Как создается этот файл в первую очередь? – MrFlick
Извините, я быстро проанализировал XML, чтобы удалить важную информацию. Предположим, что это действительный XML-файл. Обход работает, он просто бросает предупреждения на неполную конечную строку. – JJFord3