「この回答へのお礼」の補足です。
とりあえず FireFox に関しては、動的に、対象となる XML 文書を作り出してそこから読み出す、くらいしか浮びませんでした。
たとえば、MathML という XML の entity の ExponentialE を取り出すとき、次のようにして取り出せました。
var doc = (new DOMParser()).parseFromString([
'<?xml version="1.0"?>',
'<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "dtd/mathml2.dtd">',
'<math xmlns="http://www.w3.org/1998/Math/MathML">ⅇ
</math>'
].join("\n"), "text/xml");
var result = doc.documentElement.firstChild.nodeValue;
姑息というかなんというか (^^;
お礼
ご回答ありがとうございます。 おお、まさにこれですね。なるほど createEntityReference はこういう使い方をするのですか。 実行してみたところ、XHTML 以外でも XHTML + MathML などで MathML 独自の entity でも上手く出力が得られました。ありがとうございます。 あとは FireFox 用に var doc = document.implementation.createDocument("", "", null); doc.load("foo.xml"); var ref = doc.createEntityReference("hearts"); と実行してみたのですが、ref は null でした。createDocument のパラメータを createDocumentType などを使用して埋めてもやはり null しか返されません。 https://bugzilla.mozilla.org/show_bug.cgi?id=9850 どうも昔からあるバグのようです (;_;)
補足
「この回答へのお礼」の補足です。 とりあえず FireFox に関しては、動的に、対象となる XML 文書を作り出してそこから読み出す、くらいしか浮びませんでした。 たとえば、MathML という XML の entity の ExponentialE を取り出すとき、次のようにして取り出せました。 var doc = (new DOMParser()).parseFromString([ '<?xml version="1.0"?>', '<!DOCTYPE math PUBLIC "-//W3C//DTD MathML 2.0//EN" "dtd/mathml2.dtd">', '<math xmlns="http://www.w3.org/1998/Math/MathML">ⅇ </math>' ].join("\n"), "text/xml"); var result = doc.documentElement.firstChild.nodeValue; 姑息というかなんというか (^^;