2010-11-05 6 views
1

Si j'ai l'élément suivant avec des éléments enfants à l'intérieur, comment puis-je accéder à ces éléments enfants en utilisant Hpricot?Utiliser Hpricot pour obtenir des éléments enfants

<p><b>Code</b> <i>base</i> is <a href="#">cool</a> stuff dude!</p>

+0

À quel élément enfant voulez-vous accéder? Une expression XPath est ce que vous pourriez utiliser, avec la méthode 'search' de Hpricot. Si vous postez l'élément, peut-être que je peux vous donner un coup de main. – William

+0

@William: Le problème est que cela pourrait être dynamique. J'essaie de graduer tous les éléments enfants à l'intérieur d'une chaîne HTML – dennismonsewicz

+0

vous pouvez essayer 'inner_html' sur l'élément parent, vérifiez les docs hpricot (https://github.com/hpricot/hpricot/wiki/Hpricot-Basics) qui pourraient être capable de donner un coup de main aussi. – William

Répondre

1

Par "enfants", voulez-vous dire les enfants directs, ou tous les enfants récursive?

Vous pouvez obtenir des enfants directs facilement.

irb(main):038:0> (doc/"p").first.children 
=> [{elem <b> "Code" </b>}, " ", {elem <i> "base" </i>}, " is ", {elem <a href="#"> "cool" </a>}, " stuff dude!"] 
irb(main):039:0> 

Si vous voulez un en particulier, aussi facile:

irb(main):057:0> (doc/"p").first.find_element "b" 
=> {elem <b> "Code" </b>} 
irb(main):058:0> (doc/"p").first.find_element "a" 
=> {elem <a href="#"> "cool" </a>} 
irb(main):059:0> 

Plus de détails nous aideraient à vous aider!

Questions connexes