2010-11-05 87 views
1

如果我在內部具有以下子元素的元素,如何使用Hpricot訪問這些兒童元素?使用Hpricot獲取兒童元素

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

+0

你想訪問哪個子元素?使用Hpricot的「搜索」方法可以使用XPath表達式。如果你發佈了這個元素,也許我可以給你一隻手 – William 2010-11-06 00:04:49

+0

@William:問題是這可能是動態的。我正在嘗試修改HTML字符串 – dennismonsewicz 2010-11-06 00:06:31

+0

中的所有子元素,您可以在父元素上嘗試'inner_html',檢查hpricot文檔(https://github.com/hpricot/hpricot/wiki/Hpricot-Basics)也能夠伸出援助之手。 – William 2010-11-06 00:09:19

回答

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> 

更多細節將幫助我們來幫助你!