IXmlLineInfo.HasLineInfo Method

XObject.IXmlLineInfo.HasLineInfo Method ()


Gets a value indicating whether or not this XObject has line information.

Namespace:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

bool IXmlLineInfo.HasLineInfo()

Return Value

Type: System.Boolean

true if the XObject has line information, otherwise false.

You can call this method to determine whether the XObject contains valid line information.

This method is an explicit interface member implementation of a method in the IXmlLineInfo interface, so in order to call this method, it is necessary to cast to IXmlLineInfo.

This example loads a small XML tree from a file, setting the options to set base URI and retain line information. It then adds another element that does not have line information. It then prints the line information for each element in the tree.

string markup = @"<Root>
    <Child1 />
    <Child2 />
    <Child4 />

File.WriteAllText("Test.xml", markup);

XElement po = XElement.Load("Test.xml",
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);

// add a node to the tree.
// the newly added node will not have line information.
po.Element("Child2").AddAfterSelf(new XElement("Child3"));

string[] splitUri = po.BaseUri.Split('/');
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);
    "Element Name".PadRight(20),
foreach (XElement e in po.DescendantsAndSelf())
        ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),
        ((IXmlLineInfo)e).HasLineInfo() ?
            ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5) :
        ((IXmlLineInfo)e).HasLineInfo() ?
            ((IXmlLineInfo)e).LinePosition.ToString() :
            "No Line Information");

This example produces the following output:

BaseUri: Test.xml

Element Name        Line Position
------------        ---- --------
Root                1    2
  Child1            2    6
  Child2            3    6
  Child3            No Line Information
  Child4            4    6

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2015 Microsoft