Leerzeichen in XML-Literalen (Visual Basic)
Der Visual Basic-Compiler bindet nur die signifikanten Leerzeichen eines XML-Literals ein, wenn er ein LINQ to XML-Objekt erstellt. Die nicht signifikanten Leerzeichen werden nicht übernommen.
Signifikante und nicht signifikante Leerzeichen
Leerzeichen in XML-Literalen sind nur in drei Bereichen signifikant:
Wenn sie sich in einem Attributwert befinden.
Wenn sie Teil des Textinhalts eines Elements sind und der Text auch andere Zeichen enthält.
Wenn sie sich in einem eingebetteten Ausdruck des Textinhalts eines Elements befinden.
Andernfalls behandelt der Compiler Leerzeichen als nicht signifikant und schließt sie nicht in das LINQ to XML-Objekt für das Literal ein.
Zum Einschließen von nicht signifikanten Leerzeichen in ein XML-Literal wird ein eingebetteter Ausdruck verwendet, der ein Zeichenfolgenliteral mit den Leerzeichen beinhaltet.
Tipp
Wenn das xml:space-Attribut in einem XML-Elementliteral vorhanden ist, schließt der Visual Basic-Compiler das Attribut im XElement-Objekt ein. Jedoch ändert das Hinzufügen dieses Attributs nicht die Behandlung von Leerzeichen durch den Compiler.
Beispiele
Das folgende Beispiel enthält zwei XML-Elemente, ein äußeres und ein inneres. Beide Elemente enthalten Leerzeichen im Textinhalt. Die Leerzeichen im äußeren Element sind nicht signifikant, weil das Element nur Leerzeichen und ein XML-Element enthält. Die Leerzeichen im inneren Element sind signifikant, da das Element Leerzeichen und Text enthält.
Dim example As XElement = <outer>
<inner>
Inner text
</inner>
</outer>
Console.WriteLine(example)
Beim Ausführen zeigt dieser Code den folgenden Text an.
<outer>
<inner>
Inner text
</inner>
</outer>