Подтвердить что ты не робот

Ошибка: XML-содержимое не похоже на XML | R 3.1.0

Я пытаюсь получить этот файл XML, но не могу. Я проверил другие решения в одной и той же теме, но я не мог понять. Я новичок в R.

> library(XML)
> fileURL <- "https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml"
> doc <- xmlTreeParse(fileURL,useInternal=TRUE)

Ошибка: XML-содержимое не похоже на XML: 'https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml

Можете ли вы помочь?

4b9b3361

Ответ 1

Удалите s из https

library(XML)

fileURL<-"https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml"
doc <- xmlTreeParse(sub("s", "", fileURL), useInternal = TRUE)
class(doc)
## [1] "XMLInternalDocument" "XMLAbstractDocument"

Ответ 2

Вы можете использовать RCurl для извлечения содержимого, а затем XML, похоже, сможет обработать его

library(XML)
library(RCurl)
fileURL <- "https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml"
xData <- getURL(fileURL)
doc <- xmlParse(xData)

Ответ 3

xmlTreeParse не поддерживает https.

Вы можете загрузить данные с помощью getURL (от RCurl), а затем проанализировать его.

Ответ 4

Ответ находится в http://www.omegahat.net/RCurl/installed/RCurl/html/getURL.html. Ключевым моментом является использование ssl.verifyPeer = FALSE с getURL, если показана ошибка сертификата.

library (RCurl)
library (XML)
curlVersion()$features
curlVersion()$protocol
##These should show ssl and https. I can see these on windows 8.1 at least. 
##It may differ on other OSes.

temp <- getURL("https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml", ssl.verifyPeer=FALSE)
DFX <- xmlTreeParse(temp,useInternal = TRUE)

Если функция ssl или https не показана функциями libcurl, проверьте с помощью Rcurl с HTTP.