« Unicode (UTF-8) では表示フォントが異なる? | メイン | MovableType 個別のテンプレート内で文字コードを変更する »

2005年02月12日

空文字列で TextNode を生成する

ドキュメントツリーにあらたなノードを追加する場合 Document インターフェイスの createXXX メソッドを使用しますが createTextNode で空文字のテキストノードを作成する場合、 createTextNode(""); とすると実際にはこのノードは作成されないようです。 (生成されたテキストノードを追加した要素が、子のノードを持たない要素となる)。

例:
Element element = docUnitList.createElement("TextTag");
element.appendChild(document.createTextNode(""));
結果:
<TextTag />

空文字のノードを追加する場合、引き渡す文字列として "" ではなく 明示的にあらたな String インスタンスを渡すと、開始タグと終了タグの両方が出力されます。

例:
Element element = docUnitList.createElement("TextTag");
element.appendChild(document.createTextNode(new String()));
結果:
<TextTag></TextTag>

もっとも、この表記のタグも再度 JAXP の XML パーサなどで読み込むと テキスト要素を持たない要素と解釈されるようなので テキスト要素がない可能性も考慮してコーディングを行う必要があります。

投稿者 kyohei : 2005年02月12日 02:59

トラックバック

このエントリーのトラックバックURL:
http://240k.jp/cgi-bin/MT333/mt-tb.cgi/118

コメント

コメントしてください




保存しますか?