首页 > 解决方案 > 使用 library(xml2) [in R] 解析 XML 数据

问题描述

我正在尝试解决 Coursera 中的数据清理课程。我在编码中遇到了麻烦:

  1. 如何解析 XML 数据(使用库:xml2)并使用它来查找餐馆数量?

  2. 如何将 XML 解析为数据框?

从这里阅读巴尔的摩餐厅的 XML 数据: https ://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml

邮政编码 21231 的餐厅有多少?

library(xml2)
x <- read_xml("https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml")
y <- as.numeric(xml_path(xml_find_all(x, "//row[@zipcode='21231']]")))
y

或者

library(rvest)
library(purrr)
pg <- read_html ("https://d396qusza40orc.cloudfront.net/getdata%2Fdata%2Frestaurants.xml")
    html_nodes(pg, "//row[@zipcode='21231']]") %>% 
            map(xml_attrs) %>% 
            map_df(~as.list(.))

我尝试用两种方式编写代码,但都没有奏效。任何帮助将不胜感激。谢谢。

标签: rxmlxml-parsing

解决方案


寻找这样的东西?

length( xml_find_all( x, './/zipcode[text()="21231"]' ) )
[1] 127

推荐阅读