Nokogiri我该如何获得这个值



我有这个nokogiri对象:

element.first
=> #<Nokogiri::XML::Element:0x3fc0cf8ac4b8 name="a" attributes=[#<Nokogiri::XML::Attr:0x3fc0cf8ac454 name="class" value="fl">, #<Nokogiri::XML::Attr:0x3fc0cf8ac42c name="id" value="flag16">, #<Nokogiri::XML::Attr:0x3fc0cf8ac418 name="href" value="/flag/?flagCode=16&postingID=2884068312">, #<Nokogiri::XML::Attr:0x3fc0cf8ac404 name="title" value="Wrong category, wrong site, discusses another post, or otherwise misplaced">] children=[#<Nokogiri::XML::Text:0x3fc0cf8ab6bc "nttttmiscategorized">]> 

我需要从postingID的值中得到2884068312这个数字。

知道如何做到这一点吗?

element.first.value
NameError: undefined local variable or method `value' for main:Object
    from (irb):138
1.9.2-p290 :139 > element.first[:value]
 => nil 
1.9.2-p290 :140 > element.first["value"]
 => nil 

数字是href属性的一部分,请尝试:

element.first['href']

方法[]获取节点的属性的文本值。

这应该会给你一个字符串"/flag/?flagCode=16&postingID=2884068312"。然后,您可以使用regex来获取数字,类似/ID=(d+)/的东西应该可以工作。

所以把它放在一起:

element.first['href'][/ID=(d+)/, 1]

我想你想要元素['href'],它会拉出:'/flag/?flagCode=16&postingID=2884068312'。然后你可以取这个值,并通过正则表达式运行它来获取你的数字,比如:

postingID=(d+)

相关内容

  • 没有找到相关文章