XElement.Load(TextReader, LoadOptions.SetLineInfo)
Imports System Imports System.IO Imports System.Xml Imports System.Xml.XPath Public Class MainClass Public Shared Sub Main() Dim sr As TextReader = New StringReader( _ "<Root>" & Environment.NewLine & _ " <Child>" & Environment.NewLine & _ " <GrandChild1/>" & Environment.NewLine & _ " <GrandChild2/>" & Environment.NewLine & _ " </Child>" & Environment.NewLine & _ "</Root>") Dim po As XElement = XElement.Load(sr, LoadOptions.SetLineInfo) For Each e As XElement In po.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