EntityRef.pm - Dereference Entity
use EntityRef; my $text = "EURO € ALPHA Α COPY ©\n"; my $er = new EntityRef(); $er->entity2hex( \$text ); print $text, "\n";
HTML/XML 用の実体参照の定義マップファイルを読み込みます。 デフォルトでは HTMLlat1.ent、HTMLspecial.ent、HTMLsymbol.ent の 3つの標準定義マップファイルを読み込みます。 これらのファイルは EntityRef.pm と同じディレクトリに設置してください。 new() の第1引数で定義マップファイルを指定することも可能です。
my $er = new EntityRef( "EmojiDoCoMo.ent" );
ドコモ絵文字用の実体参照の定義マップファイルのみを読み込みます。
実体参照表記を、Unicodeコード番号表記(16進数)に変換します。
HTMLspecial € -> € -- euro sign, U+20AC NEW HTMLsymbol Α -> Α -- greek capital letter alpha, U+0391 HTMLlat1 © -> © -- copyright sign, U+00A9 ISOnum
実体参照の定義マップファイルは、下記の形式となります。
<!ENTITY 参照名 CDATA "&#コード;" -- コメント -->
コメントが複数行に渡っても構いません。 参照名は大文字・小文字を区別しています。 文字コードは10進数または16進数の Unicode で指定してください。 複数文字に渡る実体参照は展開できません。(1文字のみ展開します) また、文字コード番号が 128以下の文字は展開しません。
Extensible Markup Language (XML) 1.0 http://www.w3.org/TR/REC-xml
4.1 Character and Entity References
[66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' [67] Reference ::= EntityRef | CharRef [68] EntityRef ::= '&' Name ';'
If the character reference begins with "&#x", the digits and letters up to the terminating ; provide a hexadecimal representation of the character's code point in ISO/IEC 10646. If it begins just with "&#", the digits up to the terminating ; provide a decimal representation of the character's code point.
http://www.w3.org/TR/html401/HTMLlat1.ent -- Latin-1 entities http://www.w3.org/TR/html401/HTMLsymbol.ent -- Symbol entities http://www.w3.org/TR/html401/HTMLspecial.ent -- Special entities
Copyright 2004 Kawasaki Yusuke <u-suke [at] kawa.net> http://www.kawa.net/