سؤال

ولدي هذا الرمز.

class MyParser < Nokogiri::XML::SAX::Document
  def characters(string)
    LOG.debug("characters #{string}")
  end

  def start_element(name, attrs = [])
    LOG.debug("start_element #{name}")
  end

  def end_element(name)
    LOG.debug("end_element #{name}")
  end
end

parser = Nokogiri::HTML::SAX::Parser.new(MyParser.new)
parser.parse(File.new($*[0], 'rb'))

تشغيل على HTML جزء من هذا القبيل،

<h1>Hello</h1> 
<p>Hi.</p>

ويظهر الانتاج التي تتم معالجتها فقط العنصر الأول:

start_element h1
characters Hello
end_element h1

إذا كنت التفاف جزء في العلامات html وbody، يتم تحليل المدخلات كله.

هل هناك طريقة لاستخدام نمط محلل SAX على HTML شظايا؟

هل كانت مفيدة؟

المحلول

وتحتاج إلى التفاف جزء الخاص بك في العنصر الجذر:

<div>
<h1>Hello</h1> 
<p>Hi.</p>
</div>

ويجب ان تحل مشكلتك.

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