Как я могу изменить этот код Nokogiri, чтобы он возвращал HTML, а не содержимое? - PullRequest
1 голос
/ 11 июня 2011

У меня есть этот HTML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note><div><strong>this is note 2</strong>. it has a url.</div></en-note>

Я хочу извлечь это из него:

<div><strong>this is note 2</strong>. it has a url.</div>

В данный момент я делаю это:

html_doc.xpath('//en-note').each do |a_tag|
    p a_tag.content
end

Что мне дает:

"this is note 2. it has a url."

Как изменить код так, чтобы возвращался реальный HTML, а не только текст?

Ответы [ 2 ]

2 голосов
/ 11 июня 2011

Просто используйте to_s

ruby-1.9.2-p180 :010 > Nokogiri::HTML('<tag>content</tag>').xpath('//tag').first.content
 => "content" 
ruby-1.9.2-p180 :004 > Nokogiri::HTML('<tag>content</tag>').xpath('//tag').to_s
 => "<tag>content</tag>" 
0 голосов
/ 11 июня 2011

Просто используйте это

html_doc.at_xpath('//en-note').to_xml
...