2010-11-05 3 views
1

Если у меня есть следующий элемент с элементами для детей внутри, как мне получить доступ к этим элементам с помощью Hpricot?Использование Hpricot для создания дочерних элементов

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

+0

К какому дочернему элементу вы хотите получить доступ? Выражение XPath - это то, что вы можете использовать, с методом поиска Hpricot. Если вы разместите элемент, возможно, я могу дать вам руку – William

+0

@William: Проблема в том, что это может быть динамическим. Я пытаюсь отбросить все дочерние элементы внутри строки HTML – dennismonsewicz

+0

, вы можете попробовать 'inner_html' на родительском элементе, проверить документы hpricot (https://github.com/hpricot/hpricot/wiki/Hpricot-Basics), которые могут иметь возможность протянуть руку. – William

ответ

1

Под "дети", вы имеете в виду прямые дети, или все дети рекурсивно?

Вы можете легко получить прямых детей.

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> 

Если вы хотите какой-либо конкретной один, также легко:

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> 

Более подробная информация будет помочь нам помочь вам!

Смежные вопросы