This documentation is archived and is not being maintained.
IXmlLineInfo Interface
.NET Framework 1.1
Provides an interface to enable a class to return line and position information.
For a list of all members of this type, see IXmlLineInfo Members.
[Visual Basic] Public Interface IXmlLineInfo [C#] public interface IXmlLineInfo [C++] public __gc __interface IXmlLineInfo [JScript] public interface IXmlLineInfo
Classes that Implement IXmlLineInfo
| Class | Description |
|---|---|
| XmlTextReader | Represents a reader that provides fast, non-cached, forward-only access to XML data. |
| XmlValidatingReader | Represents a reader that provides DTD, XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) schema validation. |
Example
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(); } } [C++] #using <mscorlib.dll> #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 = S"<book>\n" S"<misc>\n" S"<style>paperback</style>\n" S"<pages>240</pages>\n" S"</misc>\n" S"</book>\n"; // Create the XmlNamespaceManager. XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable()); // Create the XmlParserContext. XmlParserContext* context = new XmlParserContext(0, nsmgr, 0, XmlSpace::None); // Create the reader. XmlValidatingReader* reader = new 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(S" {0} {1}, {2} ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) ); Console::WriteLine(S"< {0}>", reader -> Name); break; case XmlNodeType::Text: Console::Write(S" {0} {1}, {2} ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) ); Console::WriteLine(S" {0}", reader -> Value); break; case XmlNodeType::EndElement: Console::Write(S" {0} {1}, {2} ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) ); Console::WriteLine(S"</ {0}>", reader -> Name); break; } } } // Close the reader. reader -> Close(); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Namespace: System.Xml
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
Assembly: System.Xml (in System.Xml.dll)
See Also
Show: