.NET Framework Class Library
IXmlLineInfo Interface
Provides an interface to enable a class to return line and position information.
Assembly: System.Xml (in System.Xml.dll)
Syntax
Visual Basic
Public Interface IXmlLineInfo
C#
public interface IXmlLineInfo
Visual C++
public interface class IXmlLineInfo
F#
type IXmlLineInfo = interface end
The IXmlLineInfo type exposes the following members.
Properties
| Name | Description | |
|---|---|---|
|
LineNumber | Gets the current line number. |
|
LinePosition | Gets the current line position. |
Methods
| Name | Description | |
|---|---|---|
|
HasLineInfo | Gets a value indicating whether the class can return line information. |
Examples
The following example parses an XML fragment. Each node is displayed, including its depth, line number, and line position.
Visual Basic
Imports System Imports System.IO Imports System.Xml Imports Microsoft.VisualBasic public class Sample public shared sub Main() ' Create the XML fragment to be parsed. Dim xmlFrag as string = "<book>" + Chr(10) & _ " <misc>" + Chr(10) & _ " <style>paperback</style>" + Chr(10) & _ " <pages>240</pages>" + Chr(10) & _ " </misc>" + Chr(10) & _ "</book>" ' Create the XmlNamespaceManager. Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(new NameTable()) ' Create the XmlParserContext. Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None) ' Create the reader. Dim reader as XmlValidatingReader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context) Dim lineInfo as IXmlLineInfo = CType(reader, IXmlLineInfo) if (lineInfo.HasLineInfo()) ' Parse the XML and display each node. while (reader.Read()) select case reader.NodeType case XmlNodeType.Element: Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition) Console.WriteLine("<{0}>", reader.Name) case XmlNodeType.Text: Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition) Console.WriteLine(" {0}", reader.Value) case XmlNodeType.EndElement: Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition) Console.WriteLine("</{0}>", reader.Name) end select end while end if ' Close the reader. reader.Close() end sub end class
C#
using System; using System.IO; using System.Xml; public class Sample{ public static void Main(){ // 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); // Create the reader. XmlValidatingReader reader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context); IXmlLineInfo lineInfo = ((IXmlLineInfo)reader); if (lineInfo.HasLineInfo()){ // Parse the XML and display each node. while (reader.Read()){ switch (reader.NodeType){ case XmlNodeType.Element: Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition); Console.WriteLine("<{0}>", reader.Name); break; case XmlNodeType.Text: Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition); Console.WriteLine(" {0}", reader.Value); break; case XmlNodeType.EndElement: Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition); Console.WriteLine("</{0}>", reader.Name); break; } } } // Close the reader. reader.Close(); } }
Visual C++
#using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Xml; int main() { // Create the XML fragment to be parsed. String^ xmlFrag = "<book>\n" "<misc>\n" "<style>paperback</style>\n" "<pages>240</pages>\n" "</misc>\n" "</book>\n"; // Create the XmlNamespaceManager. XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( gcnew NameTable ); // Create the XmlParserContext. XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None ); // Create the reader. XmlValidatingReader^ reader = gcnew XmlValidatingReader( xmlFrag,XmlNodeType::Element,context ); IXmlLineInfo^ lineInfo = (dynamic_cast<IXmlLineInfo^>(reader)); if ( lineInfo->HasLineInfo() ) { // Parse the XML and display each node. while ( reader->Read() ) { switch ( reader->NodeType ) { case XmlNodeType::Element: Console::Write( " {0} {1}, {2} ", reader->Depth, lineInfo->LineNumber, lineInfo->LinePosition ); Console::WriteLine( "< {0}>", reader->Name ); break; case XmlNodeType::Text: Console::Write( " {0} {1}, {2} ", reader->Depth, lineInfo->LineNumber, lineInfo->LinePosition ); Console::WriteLine( " {0}", reader->Value ); break; case XmlNodeType::EndElement: Console::Write( " {0} {1}, {2} ", reader->Depth, lineInfo->LineNumber, lineInfo->LinePosition ); Console::WriteLine( "</ {0}>", reader->Name ); break; } } } // Close the reader. reader->Close(); }
Version Information
.NET Framework
Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Supported in: 4, 3.5 SP1Portable Class Library
Supported in: Portable Class LibraryPlatforms
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also
Reference
Community Content
Thomas Lee
Win phone development
I can't find any description about win phone development here
[tfl - 25 01 12] Hi - and thanks for your post. Community content is not the appropriate place for technical support queries. Instead, you should visit the MSDN Forums at http://forums.microsoft.com/MSDN, where such posts are welcomed and where you stand a much better chance of getting your query resolved. Sorry if that's not the answer you wanted to hear.
[tfl - 25 01 12] Hi - and thanks for your post. Community content is not the appropriate place for technical support queries. Instead, you should visit the MSDN Forums at http://forums.microsoft.com/MSDN, where such posts are welcomed and where you stand a much better chance of getting your query resolved. Sorry if that's not the answer you wanted to hear.