Share via


XML リテラルでの空白文字 (Visual Basic)

Visual Basic コンパイラは、LINQ to XML オブジェクトを作成するときに、XML リテラルから有意の空白文字のみを組み込みます。 意味のない空白文字は組み込まれません。

有意の空白と意味のない空白

XML リテラルの空白文字は、次の 3 つの領域でのみ意味があります。

  • 属性値に含まれている場合。

  • 要素のテキスト コンテンツの一部であり、テキストに他の文字も含まれている場合。

  • 要素のテキスト コンテンツの埋め込み式に含まれている場合。

それ以外の場合、空白文字はコンパイラによって意味のないものとして扱われ、リテラルの LINQ to XML オブジェクトに含まれません。

XML リテラルに意味のない空白を含めるには、空白を含む文字列リテラルを含む埋め込み式を使用します。

Note

XML 要素リテラルに xml:space 属性が含まれている場合、Visual Basic コンパイラによって XElement オブジェクトに属性が含まれますが、この属性を追加しても、コンパイラが空白を処理する方法は変わりません。

使用例

次の例には、2 つの XML 要素 (outer と inner) が含まれています。 どちらの要素にも、テキスト コンテンツ内に空白が含まれています。 outer 要素には空白と XML 要素しか含まれていないため、その空白は意味がありません。 inner 要素には空白とテキストが含まれているため、その空白は有意です。

Dim example As XElement = <outer>
                              <inner> 
                                  Inner text 
                              </inner>
                          </outer>

Console.WriteLine(example)

このコードを実行すると、次のテキストが表示されます。

<outer>
  <inner>
                                          Inner text
                                      </inner>
</outer>

関連項目