首页 > 解决方案 > 如何检查 R 中的 XML 节点集是否为空?

问题描述

我正在编写一个在 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 包(v0.2.1)于 2019 年 1 月 12 日创建

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

标签: rxmlrvestxml2

解决方案


要么使用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

推荐阅读