IXmlLineInfo.LinePosition Property

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Gets the current line position.

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

Syntax

'Declaration
ReadOnly Property LinePosition As Integer
int LinePosition { get; }

Property Value

Type: System.Int32
The current line position or 0 if no line information is available (for example, HasLineInfo returns false).

Remarks

This property is used primarily for error reporting, but can be called at any time. The starting value is 1. Combined with LineNumber, a value of 1,1 indicates the start of a document.

Examples

' Create the XML fragment to be parsed.
Dim xmlFrag As String = _
    "<book>" & _
         "<misc>" & _
             "<style>paperback</style>" & _
             "<pages>240</pages>" & _
         "</misc>" & _
     "</book>"

' Create the XmlNamespaceManager.
Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(New NameTable())

' Create the XmlParserContext.
Dim context As New XmlParserContext(Nothing, nsmgr, Nothing, XmlSpace.None)

Dim output As New StringBuilder()
' Create the reader.
Using reader As XmlReader = XmlReader.Create(New StringReader(xmlFrag), Nothing, context)

    Dim lineInfo As IXmlLineInfo = CType(reader, IXmlLineInfo)
    If lineInfo.HasLineInfo() Then

        ' Parse the XML and display each node.
        While reader.Read()
            Select Case reader.NodeType
                Case XmlNodeType.Element
                    output.Append(reader.Depth.ToString() + " " + _
                        lineInfo.LineNumber.ToString() + ", " + _
                        lineInfo.LinePosition.ToString())
                    output.AppendLine("<" + reader.Name + ">")
                Case XmlNodeType.Text
                    output.Append(reader.Depth.ToString() + " " + _
                        lineInfo.LineNumber.ToString() + ", " + _
                        lineInfo.LinePosition.ToString())
                    output.AppendLine("  " + reader.Value)
                Case XmlNodeType.EndElement
                    output.Append(reader.Depth.ToString() + " " + _
                        lineInfo.LineNumber.ToString() + ", " + _
                        lineInfo.LinePosition.ToString())
                    output.AppendLine("</" + reader.Name + ">")
            End Select
        End While
    End If
End Using

' Display the output to the TextBlock control
OutputTextBlock.Text = output.ToString()
// Create the XML fragment to be parsed.
string xmlFrag =
    @"<book>
             <misc>
                 <style>paperback</style>
                 <pages>240</pages>
             </misc>
         </book>";

// Create the XmlNamespaceManager.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());

// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

StringBuilder output = new StringBuilder();

// Create the reader.
using (XmlReader reader = XmlReader.Create(new StringReader(xmlFrag), null, context))
{

    IXmlLineInfo lineInfo = ((IXmlLineInfo)reader);
    if (lineInfo.HasLineInfo())
    {

        // Parse the XML and display each node.
        while (reader.Read())
        {
            switch (reader.NodeType)
            {
                case XmlNodeType.Element:
                    output.Append(reader.Depth + " " +
                        lineInfo.LineNumber + ", " +
                        lineInfo.LinePosition);
                    output.AppendLine("<" + reader.Name + ">");
                    break;
                case XmlNodeType.Text:
                    output.Append(reader.Depth + " " +
                        lineInfo.LineNumber + ", " +
                        lineInfo.LinePosition);
                    output.AppendLine("  " + reader.Value);
                    break;
                case XmlNodeType.EndElement:
                    output.Append(reader.Depth + " " +
                        lineInfo.LineNumber + ", " +
                        lineInfo.LinePosition);
                    output.AppendLine("</" + reader.Name + ">");
                    break;
            }
        }
    }

    // Close the reader.
}

// Display the output to the TextBlock control
OutputTextBlock.Text = output.ToString();

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.