web-dev-qa-db-ja.com

エラー: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 '

助けてもらえますか?

47
user2481859

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"
47
Rich Scriven

RCurlを使用してコンテンツを取得すると、XMLで処理できるように見えます

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

xmlTreeParseはhttpsをサポートしていません。

getURLRCurlから)を使用してデータをロードし、解析することができます。

14
kaarefc

回答は http://www.omegahat.net/RCurl/installed/RCurl/html/getURL.html にあります。重要な点は、証明書エラーが表示される場合、getURLでssl.verifyPeer = FALSEを使用することです。

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関数で表示されない場合は、 HTTPでRcurlを使用 を確認してください。

6
Atul Kumar