2010-07-26 10 views
0

J'ai une petite question. Je vous écris actuellement un script Nokogiri/Ruby et ai le code suivant:Nokogiri/Ruby array question

fullId = doc.xpath("/success/data/annotatorResultBean/annotations/annotationBean/concept/fullId") 
fullId.each do |e| 
      e = e.to_s() 
      g.write(e + "\n") 
    end 

Ce recrache le texte suivant:

<fullId>D001792</fullId> 
<fullId>D001792</fullId> 
<fullId>D001792</fullId> 
<fullId>D008715</fullId> 

Je voulais juste le texte des chiffres entre le "< fullid> "enregistré, sans le < fullId>, </fullId> balisage. Qu'est-ce que je rate?

Bobby

Répondre

10

Je pense que vous voulez utiliser le texte() accesseur (qui renvoie les valeurs de texte de l'enfant), plutôt que to_s() (qui sérialise l'ensemble de noeud, comme vous le voyez ici).

Je ne suis pas sûr de ce que vous l'objet g appelant write sur est, mais le code ci-dessous devrait vous donner un tableau contenant tout le texte dans les nœuds fullId:

doc.xpath(your_xpath).map {|e| e.text} 
+0

+1 pour pointer à la réponse la plus correcte – Chubas