2 Stimmen

Nokogiri verhindern die Umwandlung von Einheiten

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")

gibt mir

"aaaaa&amp;shy;aaaaa"

anstelle von

"aaaaa&shy;aaaaa"

Wie erhält man das zweite Ergebnis?

0voto

Jakob S Punkte 18885

Rückkehr

doc.at("div").text

anstelle von

doc.at("div").inner_html

Dabei wird jedoch der gesamte HTML-Code aus dem Ergebnis entfernt. Wenn Sie anderes Markup beibehalten müssen, können Sie wahrscheinlich mit CGI.unescapeHTML auskommen:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X