解析没有样式信息的XML?

问题描述:

我试图从网上做一个简单的XML解析,但我似乎遇到了一些障碍。如果我尝试做一个经典的XML解析:解析没有样式信息的XML?

library(XML) 
url <- c("http://www.boardgamegeek.com/xmlapi/boardgame/173346?stats=1") 
xml <- xmlTreeParse(url, encoding = "UTF-8", isURL=TRUE) 

我得到:

Unknown encoding "UTF-8" 
Error: 1: Unknown encoding "UTF-8" 

即使它好像我指定的编码了。从网站上查看XML,它顶层表示它没有任何样式信息,但仍然显示文档树。然后,如果我尝试做一个htmlParse代替,

file <- htmlTreeParse(url, encoding = "UTF-8", isURL=TRUE) 

我得到:

Error in which(value == defs) : 
argument "code" is missing, with no default 

有什么明显的,我在这里失踪?

你可能会发现,从长远来看更容易移动到rvestxml2

library(rvest) 
library(dplyr) 
library(purrr) 

pg <- read_xml("http://www.boardgamegeek.com/xmlapi/boardgame/173346?stats=1") 

xml_nodes(pg, xpath="//name") %>% xml_text() 

xml_nodes(pg, xpath="//description") %>% xml_text() 

xml_nodes(pg, xpath="//boardgamehonor") %>% xml_text() 

xml_nodes(pg, xpath="//name[@primary='true' and @sortindex=1]") %>% xml_text() 

html_nodes(pg, xpath=".//ranks/rank") %>% 
    xml_attrs() %>% 
    map(~as_data_frame(as.list(.))) %>% 
    bind_rows() 
+0

感谢您的回答。还有一个问题:在最后的字段中,有信息,但似乎不可退货。有没有办法从标签返回xml字符串? – AI52487963

+1

这听起来像你可能需要刷新HTML/XML一点。这些都是相当基本的问题,你需要作为一个扩展,并且很容易找到答案,但是假设知道HTML/XML。最后你会变得更好,并且对此有着坚实的基础理解。 – hrbrmstr