2017-02-22 11 views
0

Я пытаюсь извлечь XML-файл с веб-сайта Air Canada, который содержит данные о погоде из их радарной системы. URL-адрес, содержащий XML-файл, - hereXML-контент не распознается

Я застреваю прямо в начале, где я думал, что это будет так же просто, как чтение URL-адреса с помощью функции xmlParse из пакета XML.

library(XML) 

url = "https://www.aircanada.com/content/dam/aircanada/portal/data/weather/AirCanada.xml" 
xmlParse(url) 

Однако, я получаю следующее сообщение об ошибке:

Error: XML content does not seem to be XML

Это ясно файл XML, поэтому я не знаю, почему я получаю эту ошибку. Любая помощь/направление будут высоко оценены.

+2

... xmlParse не извлекает информацию с URL-адреса. Вы просите его разобрать строку «https://www.aircanada.com/content/dam/aircanada/portal/data/weather/AirCanada.xml», а не страницу. Вы должны добавить аргумент 'isURL = TRUE' – Jean

+1

_" вы не будете ... получать доступ или использовать ... веб-сайт через любое ... автоматическое, электронное или техническое устройство, включая, но не ограничиваясь ими, автоматизированные скрипты, роботы, обходные окна, скребки для экрана, веб-страницы «боты», ..., пауки, макропрограммы или любые другие ... программы, программное обеспечение, система, алгоритм, методология или технология ... которые выполняют ту же или аналогичную функцию, чтобы, без ограничений: «data mine»; «очистка экрана», обработка данных, доступ, извлечение, копирование, распространение, объединение или получение информации, ... ввод или сохранение информации; ... или манипулирование или мониторинг любой части или содержимого Веб-сайта; – hrbrmstr

ответ

0

Проверка XML-файла по этому URL-адресу показывает, что он содержит некоторые недопустимые символы.
Это журнал ошибок в xsltproc:

encoding error : input conversion failed due to input error, bytes 0x8F 0x6E 0x65 0x73 
encoding error : input conversion failed due to input error, bytes 0x8F 0x6E 0x65 0x73 
I/O error : encoder error 
AirCanada.xml:1059: parser error : AttValue: ' expected 
AirCanada.xml:1059: parser error : attributes construct error 
AirCanada.xml:1059: parser error : Couldn't find end of Start Tag SITE line 1059 
AirCanada.xml:1059: parser error : Premature end of data in tag DATAFILE line 50 
unable to parse AirCanada.xml 

Санобработка в AirCanada.xml файл с раствором из this SO answer делает данные можно использовать, но, возможно, с некоторыми потерями.

iconv -f utf-8 -t utf-8 -c AirCanada.xml > AirCanadaSanitized.xml 

После этого вы можете обработать AirCanadaSanitized.xml с процессором XSLT.

Смежные вопросы