[ruby-list:49826] Re: Nokogiri で文字実体参照が
From:
"TAKANO `takano32' Mitsuhiro" <tak@...32.tk>
Date:
2014-05-20 09:45:41 UTC
List:
ruby-list #49826
うーん、そもそも Element とかではないものに to_s しても
Object#inspect 相当な挙動をする可能性が高いのではないでしょうか。
Nokogiri::HTML("<p>© 2014 Hoge</p>").root.text
とかで期待してる挙動になります?
「いや、タグもふくめた文字列を取得したい」という場合も
Nokogiri::HTML::Document には to_s というインスタンスメソッドはないので
Nokogiri::HTML("<p>© 2014 Hoge</p>").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("<p>© 2014 Hoge</p>").to_s
> # => "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"
> \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html><body><p>© 2014
> Hoge</p></body></html>\n"
>
> それはいいのですが,ℏ のような文字実体参照が &hbar; に変
> えられてしまいます。
>
> これを防ぐ(ℏ のままにしてもらう)手段はありますでしょうか。
>
> 使い得る実体参照を ENTITY 宣言に全部書く,という方法は避けたいです。
>
> --
> 5.5@moji.gr.jp