如何从<li>元素中获取文本

时间:2016-05-07 12:51:36

标签: ruby-on-rails ruby nokogiri

我有:

<ul> 
  <li>text1</li>
  <li>text2 </li>
</ul>

现在我从<li>得到这样的文字:

result = page.css(' ul li').text

问题是,因此我得到一个没有空格的字符串,如

text1text2

我希望将其与<br>分开,例如text1<br>text2<br>

我该怎么做?

1 个答案:

答案 0 :(得分:3)

来自&#34; Searching a XML/HTML Document&#34; :

  

方法xpath和css实际上返回一个NodeSet,它非常有用   像一个数组,并包含文档中的匹配节点。

因此,如果您要连接所有<li>标记中的所有文本,那么您应该使用css方法结果与集合一起使用:

page.css('ul li') # selects all li tags and returns collection of Node objects
    .map(&:text) # maps collection of li nodes into array of corresponding texts
    .join('<br>') # concatenates all nodes texts into a single string with <br> separator 

请参阅:http://ruby.bastardsbook.com/chapters/html-parsing/