[ruby-list:49832] Re: Nokogiri で文字実体参照が

From: 小西 弘将 <konishi@...>
Date: 2014-05-21 00:48:42 UTC
List: ruby-list #49832
小西です。

&hbar;は文字実体参照で無いと判断されて、最初の&が&amp;に変換されているん 
じゃ無いかと。

NokogiriはHTML4.01とXHTML1.0の文字実体参照のみマッピングしているライブラ 
リを使用しているのでしょう。
http://www.cybergarden.net/references/charref/

&hbar;はローカルな文字実体参照なのでしょうか? 検索した限りではどの仕様で 
定義しているのかわかりませんでした。

無難な線では、やはり自前で処理を書くしかないのかなぁ。
Nokogiriに渡す前に&hbar;→ℏ、後でℏ→&hbar;ですかね。

(2014/05/20 8:54), 5.5 wrote:
> 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 宣言に全部書く,という方法は避けたいです。
>


In This Thread