次の方法で共有


XmlTextReader.LineNumber プロパティ

現在の行番号を取得します。

Public Overridable ReadOnly Property LineNumber As Integer  _   Implements IXmlLineInfo.LineNumber
[C#]
public virtual int LineNumber {get;}
[C++]
public: __property virtual int get_LineNumber();
[JScript]
public function get LineNumber() : int;

プロパティ値

現在の行番号。

実装

IXmlLineInfo.LineNumber

解説

通常、このプロパティは、エラーのレポートに使用されますが、いつでも呼び出すことができます。このプロパティの開始値は 1 です。

LinePosition と組み合わせると、 1,1 の値は、ドキュメントの開始を示します。

使用例

[Visual Basic, C#, C++] 深さ、行番号、行の位置などを含む各ノードを表示する例を次に示します。

 
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 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

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

[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.
   NameTable* nt = new NameTable();
   XmlNamespaceManager* nsmgr = new XmlNamespaceManager(nt);

   // Create the XmlParserContext.
   XmlParserContext* context = new XmlParserContext(0, nsmgr, 0, 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(S" {0} {1}, {2}  ", __box(reader -> Depth), __box(reader -> LineNumber), __box(reader -> LinePosition));
         Console::WriteLine(S"< {0}>", reader -> Name);
         break;
      case XmlNodeType::Text:
         Console::Write(S" {0} {1}, {2}  ", __box(reader -> Depth), __box(reader -> LineNumber), __box(reader -> LinePosition));
         Console::WriteLine(S" {0}", reader -> Value);
         break;
      case XmlNodeType::EndElement:
         Console::Write(S" {0} {1}, {2}  ", __box(reader -> Depth), __box(reader -> LineNumber), __box(reader -> LinePosition));
         Console::WriteLine(S"</ {0}>", reader -> Name);
         break;
      }       
   }           

   // Close the reader.
   reader -> Close();      
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET, Common Language Infrastructure (CLI) Standard

参照

XmlTextReader クラス | XmlTextReader メンバ | System.Xml 名前空間