解析没有样式信息的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
有什么明显的,我在这里失踪?
答
你可能会发现,从长远来看更容易移动到rvest
和xml2
:
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()
感谢您的回答。还有一个问题:在最后的 字段中,有信息,但似乎不可退货。有没有办法从标签返回xml字符串? –
AI52487963
这听起来像你可能需要刷新HTML/XML一点。这些都是相当基本的问题,你需要作为一个扩展,并且很容易找到答案,但是假设知道HTML/XML。最后你会变得更好,并且对此有着坚实的基础理解。 – hrbrmstr