开发者

Extracting information from a string in ruby

Programming noob here. Just wondering what the best way to extract specific bits of information from a string is with Ruby.

I have some xml from an api that looks like this:

<users>
  <user>
    <twitter_screen_name>Jason</twitter_screen_name>
    <kscore>81.78</kscore>
  </user>
</user开发者_如何学运维s>

I just want to get the username and kscore out.

Heres what I've got, just wondering if theres a more efficient way?

info = Array.new
username = info[3].split('>')
username = username[1].split('<')
username = username[0]

klout = info[4].split('>')
klout = klout[1].split('<')
klout = klout[0]

Thanks


Use an XML parser such as Nokogiri:

doc      = Nokogiri::XML(your_xml_string)
username = doc.at('twitter_screen_name').content
klout    = doc.at('kscore').content.to_f

Trying to parse XML with regular expressions is not recommended.


Alternatively, you can use the Klout ruby wrapper, depending on what version you're using of Ruby.

This will work with < 1.8.6 : https://github.com/jasontorres/klout

This will work with >= 1.9.2 : https://github.com/mpautasso/klout (fork from the prior)

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜