Пробелы в XML-литералах
Обновлен: Ноябрь 2007
Visual Basic компилятор включает только значащие символы пробелов из исходного XML литерала при создании объекта LINQ to XML. Незначащие пробелы не включены.
Значащие и незначащие пробелы
Символы пробела в XML-литерале являются значащими только в трех областях:
Когда они находятся в значении атрибута.
Когда они являются частью текста содержимого элемента, и текст также содержит другие символы.
Когда они находятся во встроенном выражении для содержания текстового элемента.
В противном случае компилятор рассматривает символ пробела как незначащий и не включает его в объект LINQ to XML для литерала.
Чтобы включить незначащий пробельный символ в литерал XML, используйте встроенное выражение, которое содержит строковый литерал с пробелом.
Примечание. |
---|
Если в литерале 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>