Поделиться через


Пробелы в XML-литералах

Обновлен: Ноябрь 2007

Visual Basic компилятор включает только значащие символы пробелов из исходного XML литерала при создании объекта LINQ to XML. Незначащие пробелы не включены.

Значащие и незначащие пробелы

Символы пробела в XML-литерале являются значащими только в трех областях:

  • Когда они находятся в значении атрибута.

  • Когда они являются частью текста содержимого элемента, и текст также содержит другие символы.

  • Когда они находятся во встроенном выражении для содержания текстового элемента.

В противном случае компилятор рассматривает символ пробела как незначащий и не включает его в объект LINQ to XML для литерала.

Чтобы включить незначащий пробельный символ в литерал XML, используйте встроенное выражение, которое содержит строковый литерал с пробелом.

Bb385101.alert_note(ru-ru,VS.90).gifПримечание.

Если в литерале XML-элемента используется атрибут xml:space, то Visual Basic компилятор включает атрибут в объект XElement, но добавление этого атрибута не изменяет способ обработки пробелов компилятором.

Примеры

В следующем примере содержатся два элемента XML, внешний и внутренний. Оба этих элемента содержат пробелы в текстовом содержимом. Пробелы во внешнем элементе незначащие, поскольку он содержит только пробелы и XML-элемент. Пробелы во внутреннем элементе являются значащими, поскольку в нем содержатся и пробелы, и текст.

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

Console.WriteLine(example)

При запуске этот код отображает следующий текст.

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

См. также

Другие ресурсы

Создание XML в Visual Basic