XElement.Parse(String, LoadOptions.SetLineInfo)
Imports System Imports System.Xml Imports System.Xml.XPath Public Class MainClass Public Shared Sub Main() Dim markup As String = _ "<Root>" & Environment.NewLine & _ " <Child>" & Environment.NewLine & _ " <GrandChild/>" & Environment.NewLine & _ " </Child>" & Environment.NewLine & _ "</Root>" 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