XML 文本中的空白 (Visual Basic)

Visual Basic 编译器在创建 LINQ to XML 对象时仅合并 XML 文字中的有效空白字符。 而不会合并无效空白字符。

有效和无效空白

XML 文本中的空白字符仅在以下三种情况下有效:

  • 位于属性值中。

  • 属于元素的文本内容并且该文本还包含其他字符。

  • 位于元素的文本内容的嵌入表达式中。

其余情况,编译器会将空白字符视为无效,并且不会包括在文本的 LINQ to XML 对象中。

要在 XML 文本中包含无效空白,请使用包含带有空白的字符串文字的嵌入式表达式。

注意

如果 xml:space 属性出现在 XML 元素文本中,Visual Basic 编译器会在 XElement 对象中包含该属性,但添加此属性不会更改编译器处理空格的方式。

示例

下面的示例包含两个 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>

另请参阅