XML リテラルでの空白文字 (Visual Basic)
Visual Basic コンパイラは、LINQ to XML オブジェクトを作成するときに、XML リテラルから意味のある空白文字のみを組み込みます。意味のない空白文字は組み込まれません。
意味のある空白文字と意味のない空白文字
XML リテラル内の空白文字は、次の 3 つの領域でのみ意味があります。
属性値に含まれる場合。
要素のテキスト内容の一部であり、テキストに他の文字も含まれる場合。
要素のテキスト内容の埋め込み式に含まれる場合。
これら以外の場合は、コンパイラは空白文字を意味のないものとして扱い、リテラルに対する LINQ to XML オブジェクトには含めません。
意味のない空白文字を XML リテラルに含めるには、空白文字のある文字列リテラルを含む埋め込み式を使用します。
[!メモ]
xml:space 属性が XML 要素リテラル内にある場合、Visual Basic コンパイラはこの属性を XElement オブジェクトに組み込みますが、この属性を追加しても、コンパイラによる空白文字の処理方法は変わりません。
例
次の例には、2 つの XML 要素 outer と inner が含まれています。どちらの要素も、テキスト内容に空白文字を含みます。outer 要素は空白文字と XML 要素のみを含むので、outer 要素内の空白文字は意味がありません。inner 要素は空白文字とテキストを含むので、inner 要素内の空白文字は意味があります。
Dim example As XElement = <outer>
<inner>
Inner text
</inner>
</outer>
Console.WriteLine(example)
このコードを実行すると、次のようなテキストが表示されます。
<outer>
<inner>
Inner text
</inner>
</outer>