2
Nokogiri("<a href='*|UNSUB|*'>unsubscribe</a>").to_html
# returns
"<a href="*%7CUNSUB%7C*">unsubscribe</a>"

How can I get Nokogiri to not escape the pipes?

Joe Van Dyk
  • 6,828
  • 8
  • 57
  • 73
  • Why would you want to produce [an invalid URI](http://stackoverflow.com/questions/1547899/which-characters-make-a-url-invalid)? Nokogiri is doing you a favor. – Phrogz Dec 16 '11 at 05:00
  • 2
    Because I need to send the URL to a service that is looking for URLs like \*|UNSUB|* -- they will replace it with a unsubscribe URL. – Joe Van Dyk Dec 16 '11 at 07:49

1 Answers1

1
require 'nokogiri'

doc = Nokogiri("<a href='*|UNSUB|*'>unsubscribe</a>")

puts doc.to_html
#=> <a href="*%7CUNSUB%7C*">unsubscribe</a>

puts doc.to_xml
#=> <?xml version="1.0"?>
#=> <a href="*|UNSUB|*">unsubscribe</a>

Alternatively:

puts doc.to_html.gsub('%7C','|')
#=> <a href="*|UNSUB|*">unsubscribe</a>
Phrogz
  • 296,393
  • 112
  • 651
  • 745