« 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