2012-09-03 134 views
0

鑑於此HTML片段水豚用嵌套標籤

<ul> 
    <li>Product 1<span><a href="#">Remove</a></span></li> 
    <li>Product 2<span><a href="#">Remove</a></span></li> 
</ul> 

什麼是乾淨的方式來獲得產品列表作爲一個數組?:

['Product 1', 'Product 2'] 

我想li元素的文本,但不的span標籤。


更新:

這工作:

all('ul li').map{|e| e.native.children.first.text} 

但它可以被改進?我並不熱衷於使用'本地',因爲它可能不適用於所有水豚司機。

回答

1

這應做到:

all(:xpath, '//ul/li/text()[1]').map(&:text) 
+0

的確如此 - 它似乎你甚至都不需要輸入[1]的一部分。似乎這是您需要Xpath而不是CSS查詢的強大功能的情況之一。 –

+0

如果你有任何額外的空白或換行標籤周圍的鏈接或span標籤,你可能需要[1]。 –

+0

[1]是什麼意思? –