如何使用 XML2 读取特定标签

How to read specific tags using XML2

问题

我正在尝试使用 xml2 获取 https://www.ato.gov.au/sitemap.xml 中的所有 url(N.B 这是一个约 9mb 的文件)。任何指点表示赞赏。

我的尝试

library("xml2")
data1 <- read_xml("https://www.ato.gov.au/sitemap.xml")
xml_find_all(data, ".//loc")

我没有得到我需要的输出:

{xml_nodeset (0)}

没有使用 xml2 但我可以使用 rvest

得到它
library(dplyr)
library(rvest)

url <- "https://www.ato.gov.au/sitemap.xml"

url %>%
  read_html() %>%
  html_nodes("loc") %>%
  html_text()

以防万一您需要数据框中的所有 urls,您可以使用以下代码:

library(XML)
library(xml2)
library(httpuv)
library(httr)
library(RCurl)
library(data.table)
library(dplyr)
url <- "https://www.ato.gov.au/sitemap.xml"
xData <- getURL(url)
doc <- xmlParse(xData)
data<-xmlToList(doc)
a<-as.data.frame(unlist(data))
a<-dplyr::filter(a,grepl("http",`unlist(data)`) )
head(a)

以上代码将为您提供一个包含所有 url 列表的数据框。我只是想知道您还可以使用 "Xenu" url 提取器软件从站点地图中未包含的网站中提取 url。 如果您卡在中间某个地方,请告诉我。