Sinatra、Rubyアプリでページ処理を行うためにNokogiriを使用しています。
だから私がこれをするとき:
require 'nokogiri'
s='<a href="<%=@prevHref%>">a</a>'
doc = Nokogiri::HTML.fragment(s)
puts doc.to_s
私は得る
<a href="%5C<%=@prevHref%%5C>">a</a>
コードがエスケープされました。これを回避するにはどうすればよいですか?実際に私がしていることは次のとおりです。
- ディスク上のテンプレートを開く
- のこぎりで解析する
- 一部のノードを置き換えます(エスケープされるノードではなく、他のノード)
- テンプレートをディスクに保存します
- ERBマークアップが台無しにされたため、明らかに失敗するERBを使用してテンプレートを解析します。