tips/JAVA/空文字列で TextNode を生成する のバックアップの現在との差分(No.1)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)

* 空文字列で TextNode を生成する [#jbe00bf2]
* 空文字列で TextNode を生成する [#e1a1202f]


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

 例:
 Element element = docUnitList.createElement("TextTag");
 element.appendChild(document.createTextNode(""));
例:
#pre{{
Element element = docUnitList.createElement("TextTag");
element.appendChild(document.createTextNode(""));
}}

 結果:
 <TextTag />
結果:
#pre{{
<TextTag />
}}

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

 例:
 Element element = docUnitList.createElement("TextTag");
 element.appendChild(document.createTextNode(new String()));
例:
#pre{{
Element element = docUnitList.createElement("TextTag");
element.appendChild(document.createTextNode(new String()));
}}

 結果:
 <TextTag></TextTag>
結果:
#pre{{
<TextTag></TextTag>
}}

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