XML LINQ VB.Net

Imports System
Imports System.Xml
Imports System.Xml.XPath
Public Class MainClass
    Public Shared Sub Main()
        Dim markup As String = _
        "" & Environment.NewLine & _
        "    " & Environment.NewLine & _
        "        " & Environment.NewLine & _
        "    
" & Environment.NewLine & _
        "
"
        
        Dim xRoot As XElement = XElement.Parse(markup, LoadOptions.SetLineInfo)
        For Each e As XElement In xRoot.DescendantsAndSelf()
            Console.WriteLine("{0}{1}{2}", _
                ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _
                DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _
                DirectCast(e, IXmlLineInfo).LinePosition)
        Next
    End Sub
End Class