IXmlLineInfo Interface

 

Provides an interface to enable a class to return line and position information.

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

public interface class IXmlLineInfo

NameDescription
System_CAPS_pubpropertyLineNumber

Gets the current line number.

System_CAPS_pubpropertyLinePosition

Gets the current line position.

NameDescription
System_CAPS_pubmethodHasLineInfo()

Gets a value indicating whether the class can return line information.

The following example parses an XML fragment. Each node is displayed, including its depth, line number, and line position.

#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();
}

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show: