2011-10-06 42 views
1

我从链接到MediaWiki API穿越红宝石地图问题

<?xml version="1.0"?> 
<api> 
     <query> 
      <pages> 
       <page pageid="309311" ns="0" title="Chenonetta  jubata"> 
       <images> 
        <im ns="6" title="File:Australian Wood Duck.jpg" /> 
        <im ns="6" title="File:Australian Wood Duck Female.JPG" /> 
        <im ns="6" title="File:Australian Wood Duck Male.JPG" /> 
        ... 
       </images> 
       </page> 
      </pages> 
    </query> 
    </api> 

拉动下面的XML和使用xmlSimple读入一个Ruby的地图。这我真的想获得的数据是从图像的图像名称部分,但是当我试图晃过查询级别与

 x= result['query']['pages'] 
    puts x 

,我发现了以下错误:

in `[]': can't convert String into Integer (TypeError) 

我做错了什么?

谢谢, 米

+1

你能不能做一个'p result'看到它的内容,也虽然不如正确的,你可以得到你想要的东西用'图片= data.scan(/文件:(*)“/)' – derp

+1

如何向我们展示你的所有代码?结果是一个数组,这就是为什么它正在提高,因为你期待一个哈希 –

+0

我是Ruby的新手,有同样的问题,生气 – corpix

回答

1

我用引入nokogiri在其允许的xpath符号遍历XML树的端部。 例如

licenseinfo = results3.xpath("//api/query/pages/page/categories/cl/@title")