Estou lendo e analisando arquivos xml do BoardGameGeek xml API2. Para determinados arquivos, os arquivos xml que recebo não correspondem ao arquivo xml completo encontrado no URL. Aqui está um exemplo:
library(XML)
library(xml2)
bgg_url_api2 <- paste0('https://boardgamegeek.com//xmlapi2/thing?id=',toString(73994),
'&type=boardgame,boardgameexpansion,boardgameaccesory,rpgitem,rpgissue,videogame&versions=1&stats=1&videos=1&marketplace=1&pricehistory=1&comments=1')
data_api <- readLines(bgg_url_api2)
if (!'try-error' %in% class(try(xmlParse(data_api)))){xmlfile_api = xmlParse(data_api)
saveXML(xmlfile_api, paste0('D:\\BGG\\BGG_xml_files_api2\\bgg_test.xml'))}
O que acontece é que falta um pedaço do arquivo original no arquivo que salvei, especialmente a seção "versões". Não sei se é porque está corrompido ou com estilo xml ruim ou outra coisa. Achei que usar readLines leria exatamente o URL. Existe uma maneira de corrigir isso? Posso, de alguma forma, copiar literalmente o texto/código xml do arquivo on-line para o meu arquivo? Obrigado.
Você deve usar o pacote httr, que fornece mais controle sobre solicitações e respostas HTTP. Veja como você pode modificar seu código para buscar os dados XML de maneira confiável: