E528cb151b15f0a1542d59b91e731df8

這樣的內容Nokogiri要如何抓取

2012-02-29 10:59:05 +0800kennxGem 節點 中發起
最後由 kennx2012-03-01 11:04:27 +0800回應 , 320次閱讀

<ul>
   <li>列表1</li>
   <li>列表2<em>2012-12-31</em></li>
   <li><strong>important</strong>列表3</li>
   <li><i>...</i>列表4<cite>...</cite></li>
</ul>

我想要li tag的內容,裏面的childnode我不需要。

有方法可以過濾嗎?官方文檔沒看明白

難道非得最後再用正則表達式做一次處理麼。

截至 2012-03-01 11:04:27 +0800,共收到 4 條回應
E13e24a4a8332f251c58f30559f3c176
run26kimo 1樓, 於2012-02-29 18:53:02 +0800回應

不太明白是要取得那個 li 的內容?

E528cb151b15f0a1542d59b91e731df8
kennx 2樓, 於2012-02-29 20:10:55 +0800回應

#1樓 @run26kimo 全部都要取。目前我是用正则搞定的。感觉上不是“优雅”。不知道nokogiri能不能直接做到。

C317e3b04079aa241eb81a8448a11696
cyanglee 3樓, 於2012-02-29 23:31:57 +0800回應

這是你要的結果嘛?

require "nokogiri"

xml = 
"<ul>
   <li>列表1</li>
   <li>列表2<em>2012-12-31</em></li>
   <li><strong>important</strong>列表3</li>
</ul>"

doc = Nokogiri::XML(xml)
doc.xpath('//li').each do |node|
  node.xpath('text()').text # => "列表1", "列表2", "列表3"
end

E528cb151b15f0a1542d59b91e731df8
kennx 4樓, 於2012-03-01 11:04:27 +0800回應

#3樓 @cyanglee 没错没错。。

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊