小编use*_*506的帖子

尝试使用Nokogiri使用自定义伪类CSS选择器提取属性值

加载(X)HTML页面后,我试图获取元标记的"内容"属性的值.例如,给定:

<meta name="author" content="John Smith" />
Run Code Online (Sandbox Code Playgroud)

我想提取价值"约翰史密斯".

我知道如何使用XPath,并了解CSS主要用于元素选择,但Nokogiri支持定义自定义CSS伪类,我认为可以使用如下:

class CSSext
  def attr(nodeset, tag)
    nodeset.first.attribute_nodes.find_all {|node| node.name == tag}
  end
end

doc = Nokogiri::HTML(open(someurl))
doc.css("meta[name='name']:attr('content')", CSSext.new)
Run Code Online (Sandbox Code Playgroud)

但是,这会返回相同的结果

doc.css("meta[name='name']")
Run Code Online (Sandbox Code Playgroud)

是什么赋予了?Nokogiri使用相同的引擎进行CSS和XPath搜索,因此在XPath中可能的任何东西都应该在CSS中可行.我该如何提取属性值?

html css ruby css-selectors nokogiri

4
推荐指数
1
解决办法
3629
查看次数

使用purrr :: walk来设置多个事件观察者

我有一组变量用作具有匹配函数的html元素的id(方便地命名为varname.helper()),只要在相应的html元素上触发事件,我就会调用它.

我尝试了以下方法:

server <- function(input, output, session) {
    observables <- c("foo1", "foo2", "foo3") # they are obviously much more than 3 vars...
    observables %>% walk(function(x) {
        observeEvent(quo(!!sym(paste0("input$", x))), quo(!!sym(paste0(x, ".helper"))(input)), handler.quoted=TRUE)
}
Run Code Online (Sandbox Code Playgroud)

但它没有用.有任何想法吗?

r shiny purrr

2
推荐指数
1
解决办法
1313
查看次数

标签 统计

css ×1

css-selectors ×1

html ×1

nokogiri ×1

purrr ×1

r ×1

ruby ×1

shiny ×1