2011-10-06 3 views
1

Je tire le code XML suivant de l'API mediawikitraversant carte ruby ​​émet

<?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> 

et de la lecture dans une carte en utilisant Ruby xmlSimple. Les données que je suis vraiment essayer d'obtenir est le nom d'image à partir des images section, mais lorsque je tente d'aller au-delà du niveau de la requête avec

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

Je reçois l'erreur suivante:

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

qu'est-ce que je fais mal?

Merci, m

+1

Pourriez-vous faire un 'p result' pour voir son contenu, aussi bien que vous pourriez pas correct obtenir ce que vous voulez avec' = images data.scan (/ Fichier:. (*) "/)' – derp

+1

Que diriez-vous de nous montrer tout votre code? Le résultat est un tableau qui est pourquoi il augmente comme vous attendez un Hash –

+0

Je suis nouveau à Ruby et ai le même problème, énervé – corpix

Répondre

1

je Nokogiri à l'extrémité qui permet à la notation XPath pour parcourir l'arborescence xml. par exemple.

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