从ruby中的字符串中提取信息

时间:2011-09-08 05:25:19

标签: ruby xml api

在这里编程noob。 只是想知道从字符串中提取特定信息位的最佳方法是使用Ruby。

我有一个来自api的xml,如下所示:

<users>
  <user>
    <twitter_screen_name>Jason</twitter_screen_name>
    <kscore>81.78</kscore>
  </user>
</users>

我只想获取用户名和kscore。

这是我所拥有的,只是想知道这是否更有效?

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]

由于

2 个答案:

答案 0 :(得分:4)

使用XML解析器,例如Nokogiri

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

不建议尝试使用正则表达式解析XML。

答案 1 :(得分:0)

或者,您可以使用Klout ruby​​包装器,具体取决于您使用Ruby的版本。

这适用于&lt; 1.8.6:https://github.com/jasontorres/klout

这适用于&gt; = 1.9.2:https://github.com/mpautasso/klout(前一个分叉)