相关疑难解决方法(0)

Nokogiri:选择元素A和B之间的内容

让Nokogiri选择start和stop元素之间的所有内容(包括start/stop-element)最聪明的方法是什么?

检查下面的示例代码,了解我在寻找什么:

require 'rubygems'
require 'nokogiri'

value = Nokogiri::HTML.parse(<<-HTML_END)
  "<html>
    <body>
      <p id='para-1'>A</p>
      <div class='block' id='X1'>
        <p class="this">Foo</p>
        <p id='para-2'>B</p>
      </div>
      <p id='para-3'>C</p>
      <p class="that">Bar</p>
      <p id='para-4'>D</p>
      <p id='para-5'>E</p>
      <div class='block' id='X2'>
        <p id='para-6'>F</p>
      </div>
      <p id='para-7'>F</p>
      <p id='para-8'>G</p>
    </body>
  </html>"
HTML_END

parent = value.css('body').first

# START element
@start_element = parent.at('p#para-3')
# STOP element
@end_element = parent.at('p#para-7')
Run Code Online (Sandbox Code Playgroud)

结果(返回值)应如下所示:

<p id='para-3'>C</p>
<p class="that">Bar</p>
<p id='para-4'>D</p>
<p id='para-5'>E</p>
<div class='block' id='X2'>
  <p id='para-6'>F</p>
</div>
<p id='para-7'>F</p>
Run Code Online (Sandbox Code Playgroud)

更新:这是我目前的解决方案,但我认为必须有更聪明的东西:

@my_content = ""
@selected_node …
Run Code Online (Sandbox Code Playgroud)

ruby parsing dom ruby-on-rails nokogiri

4
推荐指数
1
解决办法
3803
查看次数

标签 统计

dom ×1

nokogiri ×1

parsing ×1

ruby ×1

ruby-on-rails ×1