2011-08-23 58 views
1

我有以下XML文件:如何将.xml文件转换为ruby数组的实例?

/my_file.xml

<?xml version="1.0" encoding="utf-8" ?> 
<words> 
    <w>my_word</w> 
    <w>second_word</w> 
</words> 

我怎样才能做到以下使用Ruby:

  1. 负载
  2. 解析
  3. 变换一个xml文件到一个红宝石数组的实例:
words = ["my_word","second_word"] 

回答

3

随着Nokogiri宝石...

require 'rubygems' 
require 'nokogiri' 

xml = '<?xml version="1.0" encoding="utf-8" ?> 
<words> 
<w>my_word</w> 
<w>second_word</w> 
</words>' 

doc = Nokogiri::XML(xml) 
words = doc.xpath("//w").map {|x| x.text} 
+1

除的XPath将返回引入nokogiri文本节点,而不是文字本身,试试这个代替'doc.xpath( “// W”) .map {| x | x.text}'。 – maerics

+1

在Ruby 1.9中它可能更短:'oc.xpath(“// w”)。map(&:text)' – DNNX

相关问题