如何检查R中XML节点集是否为空?

时间:2019-01-12 01:14:39

标签: r xml rvest xml2

我正在编写一个在R中的XML节点上迭代的函数;为此,我一直在寻找一个肯定或拒绝空XML节点集(例如isEmptyNodeSet之类的动词)。

换句话说,如果发生以下情况,则函数返回TRUE

library(magrittr)
library(rvest)
#> Loading required package: xml2
library(xml2)
"https://www.admin.ch/ch/d/gg/pc/ind2010.html" %>%
  read_html() %>%
  html_nodes("a.adminCHlink, div#spalteContentPlus h2 ~ ul") %>%
  .[[1]] %>%
  html_nodes("strong")
#> {xml_nodeset (0)}

reprex package(v0.2.1)于2019-01-12创建

非常感谢(如果答案很明显,我很抱歉,我是XML新手)!

1 个答案:

答案 0 :(得分:0)

请使用is_empty <- function(x) if(length(x) == 0) TRUE else FALSE(感谢@Chase)。

或者分别使用rlang::is_empty()purrr::is_empty(),它们的作用完全相同。

然后代码变为:

library(magrittr)
library(rvest)
#> Loading required package: xml2
library(xml2)
"https://www.admin.ch/ch/d/gg/pc/ind2010.html" %>%
  read_html() %>%
  html_nodes("a.adminCHlink, div#spalteContentPlus h2 ~ ul") %>%
  .[[1]] %>%
  html_nodes("strong") %>%
    rlang::is_empty()
#> [1] TRUE