الحصول على العناصر بالترتيب الذي تظهر في الوثيقة

StackOverflow https://stackoverflow.com/questions/1446801

  •  22-07-2019
  •  | 
  •  

سؤال

ولدي وثيقة وتريد استخراج اثنين من العناصر التي ع الوريث المباشر من العنصر الأصلي ولكن إهمال البعض الآخر. المشكلة هي أنني لا تحصل على العناصر بالترتيب الذي تظهر في الوثيقة. السبب قد يكون في الواقع أن محدد 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>
هل كانت مفيدة؟

المحلول

وحاول استخدام هذا كسباث:

//content/p|//content/h1|//content/h2

نصائح أخرى

هل تريد عناصر مختلفة ليتم سرد الطريقة التي تظهر في الوثيقة، ولكن كما ترون، يمكنك الحصول على العناصر وفقا للترتيب المغلق محدد.

لحل هذا سيكون لديك لإضافة سمة فئة إلى العناصر بحيث يمكنك تحديد كافة العناصر مع تلك الفئة، من استخدام فقط محدد المغلق واحد مما يعني أن العناصر ستكون في حق النظام.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top