[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>&copy; 2014 Hoge</p>").root.text

とかで期待してる挙動になります?

「いや、タグもふくめた文字列を取得したい」という場合も
Nokogiri::HTML::Document には to_s というインスタンスメソッドはないので

Nokogiri::HTML("<p>&copy; 2014 Hoge</p>").root.to_html

という書き方のほうが無難な気がします。
# Nokogiri::XML::Element には text メソッドなどがあります。


簡単に見た感じだと、 text メソッドによる出力では要素に
きちんと参照がそのまま入っている様子が確認できますので、

> それはいいのですが,&hbar; のような文字実体参照が &amp;hbar; に変
> えられてしまいます。

という変換のような事象は起きてなくて、出力方法とかを調べれば期待する
結果が得られそうだな、と思いました。

Nokogiri にそこまで詳しいわけではないので、ほんとうのところは
どうなのか分かってないのですが、参考になれば。

2014年5月20日 8:54 5.5 <5.5@moji.gr.jp>:
> 5.5 と申します。
>
> Nokogiri で HTML を読み込んで書き出すと,文字実体参照がリテラルに
> 変えられます。
> たとえば &copy; が © になります。
>
> Nokogiri::HTML("<p>&copy; 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; のような文字実体参照が &amp;hbar; に変
> えられてしまいます。
>
> これを防ぐ(&hbar; のままにしてもらう)手段はありますでしょうか。
>
> 使い得る実体参照を ENTITY 宣言に全部書く,という方法は避けたいです。
>
> --
> 5.5@moji.gr.jp

In This Thread