Нокогири мешают превращению сущностей - PullRequest
1 голос
/ 14 июня 2011
def wrap(content)
  require "Nokogiri"
  doc = Nokogiri::HTML.fragment("<div>"+content+"</div>")
  chunks = doc.at("div").traverse do |p|
    if p.is_a?(Nokogiri::XML::Text)
      input = p.content
      p.content = input.scan(/.{1,5}/).join("&shy;")
    end
  end
  doc.at("div").inner_html
end

wrap("aaaaaaaaaa")

дает мне

"aaaaa&amp;shy;aaaaa"

вместо

"aaaaa&shy;aaaaa"

Как получить второй результат?

1 Ответ

0 голосов
/ 14 июня 2011

Возвращение

doc.at("div").text

вместо

doc.at("div").inner_html

Это, однако, удаляет весь HTML из результата. Если вам нужно сохранить другую разметку, вы, вероятно, можете использовать CGI.unescapeHTML:

CGI.unescapeHTML(doc.at("div").inner_html)
...