共用方式為


XmlTextReader.LinePosition 屬性

定義

取得目前的行位置。

public:
 property int LinePosition { int get(); };
public int LinePosition { get; }
member this.LinePosition : int
Public ReadOnly Property LinePosition As Integer

屬性值

Int32

目前的行位置。

實作

範例

下列範例會顯示每個節點,包括其深度、行號和行位置。

#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.
   NameTable^ nt = gcnew NameTable;
   XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( nt );
   
   // Create the XmlParserContext.
   XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None );
   
   // Create the reader.
   XmlTextReader^ reader = gcnew XmlTextReader( xmlFrag,XmlNodeType::Element,context );
   
   // Parse the XML and display each node.
   while ( reader->Read() )
   {
      switch ( reader->NodeType )
      {
         case XmlNodeType::Element:
            Console::Write( " {0} {1}, {2}  ", reader->Depth, reader->LineNumber, reader->LinePosition );
            Console::WriteLine( "< {0}>", reader->Name );
            break;

         case XmlNodeType::Text:
            Console::Write( " {0} {1}, {2}  ", reader->Depth, reader->LineNumber, reader->LinePosition );
            Console::WriteLine( " {0}", reader->Value );
            break;

         case XmlNodeType::EndElement:
            Console::Write( " {0} {1}, {2}  ", reader->Depth, reader->LineNumber, reader->LinePosition );
            Console::WriteLine( "</ {0}>", reader->Name );
            break;
      }
   }

   
   // Close the reader.
   reader->Close();
}
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.
    NameTable nt = new NameTable();
    XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);

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

    // Create the reader.
    XmlTextReader reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);

    // Parse the XML and display each node.
    while (reader.Read()){
       switch (reader.NodeType){
         case XmlNodeType.Element:
           Console.Write("{0} {1},{2}  ", reader.Depth, reader.LineNumber, reader.LinePosition);
           Console.WriteLine("<{0}>", reader.Name);
           break;
         case XmlNodeType.Text:
           Console.Write("{0} {1},{2}  ", reader.Depth, reader.LineNumber, reader.LinePosition);
           Console.WriteLine("  {0}", reader.Value);
           break;
         case XmlNodeType.EndElement:
           Console.Write("{0} {1},{2}  ", reader.Depth, reader.LineNumber, reader.LinePosition);
           Console.WriteLine("</{0}>", reader.Name);
           break;
       }
    }

    // Close the reader.
    reader.Close();
  }
}
Imports System.IO
Imports System.Xml

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 nt as NameTable = new NameTable()
    Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(nt)

    ' Create the XmlParserContext.
    Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)

    ' Create the reader.
    Dim reader as XmlTextReader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context)

    ' Parse the XML and display each node.
    while (reader.Read())
       select case reader.NodeType
         case XmlNodeType.Element:
           Console.Write("{0} {1},{2}  ", reader.Depth, reader.LineNumber, reader.LinePosition)
           Console.WriteLine("<{0}>", reader.Name)
         case XmlNodeType.Text:
           Console.Write("{0} {1},{2}  ", reader.Depth, reader.LineNumber, reader.LinePosition)
           Console.WriteLine("  {0}", reader.Value)
         case XmlNodeType.EndElement:
           Console.Write("{0} {1},{2}  ", reader.Depth, reader.LineNumber, reader.LinePosition)
           Console.WriteLine("</{0}>", reader.Name)
       end select       
    end while           

    ' Close the reader.
    reader.Close()      
  end sub
end class

備註

注意

從 .NET Framework 2.0 開始,建議您使用 XmlReader.Create 方法來建立 XmlReader 實例,以利用新功能。

這個屬性最常用於錯誤報表,但可以隨時呼叫。 屬性的起始值為 1

指出的位置是標記中的文字第一個字元。

<root>  
abc<tag/>  
</root>  

在上述 XML 文字的第一行上, LinePosition 的 對應至 字元 r ;在第二行上, LinePosition 5 的 對應至 字元 t ;在第三行上, LinePosition 3 的 對應至 字元 r2

LineNumber 結合時,的值 1,1 表示檔的開頭。

適用於

另請參閱