0

ドキュメントがあり、親要素の直接の子孫であるが他の要素を除外するいくつかの要素を抽出したいと考えています。問題は、ドキュメントに表示される順序で要素を取得できないことです。その理由は、実際には私が使用している CSS セレクターが間違っている可能性があります...

require 'rubygems'
require 'nokogiri'
require 'open-uri'

html = <<END
  <content>
    <p>Lorem</p>
    <div>
      FOO
      <p>BAR</p>
    </div>
    <h1>Ipsum</h1>
    <p>Dolor</p>
    <div>
      BAR
      <h2>FOO</h2>
    </div>
    <h2>Sit</h2>
    <p>Amet</p>
  </html>
END

Nokogiri::HTML(html).css('content > p, content > h1, content > h2').inner_html # "<p>Lorem</p><p>Dolor</p><p>Amet</p><h1>Ipsum</h1><h2>Sit</h2>"

私が欲しいのは

<p>Lorem</p><h1>Ipsum</h1><p>Dolor</p><h2>Sit</h2><p>Amet</p>
4

2 に答える 2

1

この XPath を使用してみてください。

//content/p|//content/h1|//content/h2
于 2009-09-18T21:12:17.850 に答える
0

さまざまな要素をドキュメントに表示される方法でリストしたいのですが、ご覧のとおり、css セレクターの順序に従って要素を取得します。

これを解決するには、要素にクラス属性を追加して、そのクラスを持つすべての要素を選択する必要があります。これは、要素が正しい順序であることを意味する css セレクターを 1 つだけ使用するのではありません。

于 2009-09-18T21:06:50.713 に答える