- PR -

DOMで実体参照のテキストを取得する方法

1
投稿者投稿内容
みやも
ベテラン
会議室デビュー日: 2002/04/22
投稿数: 74
投稿日時: 2002-12-13 14:15
お世話になります。
DOMでXML文書の一部のテキストを読み込むプログラムを作っています。

<message>& #9312;</message>

のようなテキストがあった場合、
Node#getNodeValue()で読み込むと取得された文字列は

@

になってしまいます。
これを

& #9312;
(&と#の間は本当は空白ありません)

のまま読み込みたいのですが、
方法をご存知の方がいらっしゃいましたら
教えていただけないでしょうか?
よろしくお願いします。


[ メッセージ編集済み 編集者: みやも 編集日時 2002-12-13 14:18 ]
yu
ベテラン
会議室デビュー日: 2002/09/29
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2002-12-14 23:57
あまり、返事になっていないのですが、
これって、Text.getData() でも@が返ってくるのですか?

でも、@と&#9312;を区別しようとするのは、
XML の思想に反しているような気もちょこっとします。
みやも
ベテラン
会議室デビュー日: 2002/04/22
投稿数: 74
投稿日時: 2002-12-16 10:37
yuさん、回答ありがとうございます。

>これって、Text.getData() でも@が返ってくるのですか?

そうなのです。
普通、そんなことないですか?


>でも、@と&#9312;を区別しようとするのは、
>XML の思想に反しているような気もちょこっとします。

やりたいことは、
XMLから一部のテキストデータを取得して、データベースに格納、
格納したデータを後で、取得して、ブラウザで表示したいのですが、
どうも@のままだと、文字化けが発生してしまうのです。
1つの対処として、文字参照をそのまま取得すればいいかな、
と考えました(&#9312ならブラウザで@と表示される)。

ちょっとおかしいやり方でしょうか?
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-12-16 14:58
&amp;#9312 (&は半角)

機種依存文字を扱いたい場合は、UTF-8 を使い、かつ DB も Unicode にしましょう。
それが一番安心。
みやも
ベテラン
会議室デビュー日: 2002/04/22
投稿数: 74
投稿日時: 2002-12-16 19:07
しょむさん、
回答ありがとうございます。

期待の結果を得ることができました。


(でも、もしかして@のままDBに入れた方がいいのか。。。)
1

スキルアップ/キャリアアップ(JOB@IT)