我正在从 BoardGameGeek xml API2 读取并解析 xml 文件。对于某些文件,我返回的 xml 文件与 url 中找到的完整 xml 文件不匹配。这是一个例子:
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'))}
发生的情况是,我保存的文件中缺少原始文件的一部分,尤其是“版本”部分。我不知道这是否是因为它已损坏或错误的 xml 样式或其他原因。我认为使用 readLines 可以准确读取 url。有没有办法来解决这个问题?我可以以某种方式将在线文件中的 xml 文本/代码逐字复制到我的文件中吗?谢谢。
您应该使用 httr 包,它提供对 HTTP 请求和响应的更多控制。下面介绍了如何修改代码以可靠地获取 XML 数据: