From: TAKANO `takano32' Mitsuhiro Date: 2014-05-20T18:45:41+09:00 Subject: [ruby-list:49826] Re: Nokogiri で文字実体参照が うーん、そもそも Element とかではないものに to_s しても Object#inspect 相当な挙動をする可能性が高いのではないでしょうか。 Nokogiri::HTML("

© 2014 Hoge

").root.text とかで期待してる挙動になります? 「いや、タグもふくめた文字列を取得したい」という場合も Nokogiri::HTML::Document には to_s というインスタンスメソッドはないので Nokogiri::HTML("

© 2014 Hoge

").root.to_html という書き方のほうが無難な気がします。 # Nokogiri::XML::Element には text メソッドなどがあります。 簡単に見た感じだと、 text メソッドによる出力では要素に きちんと参照がそのまま入っている様子が確認できますので、 > それはいいのですが,ℏ のような文字実体参照が &hbar; に変 > えられてしまいます。 という変換のような事象は起きてなくて、出力方法とかを調べれば期待する 結果が得られそうだな、と思いました。 Nokogiri にそこまで詳しいわけではないので、ほんとうのところは どうなのか分かってないのですが、参考になれば。 2014年5月20日 8:54 5.5 <5.5@moji.gr.jp>: > 5.5 と申します。 > > Nokogiri で HTML を読み込んで書き出すと,文字実体参照がリテラルに > 変えられます。 > たとえば © が © になります。 > > Nokogiri::HTML("

© 2014 Hoge

").to_s > # => " \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n

© 2014 > Hoge

\n" > > それはいいのですが,ℏ のような文字実体参照が &hbar; に変 > えられてしまいます。 > > これを防ぐ(ℏ のままにしてもらう)手段はありますでしょうか。 > > 使い得る実体参照を ENTITY 宣言に全部書く,という方法は避けたいです。 > > -- > 5.5@moji.gr.jp