現在の行の位置を取得します。
Public Overridable ReadOnly Property LinePosition As Integer _ Implements IXmlLineInfo.LinePosition
[C#]
public virtual int LinePosition {get;}
[C++]
public: __property virtual int get_LinePosition();
[JScript]
public function get LinePosition() : int;
プロパティ値
現在の行の位置。
実装
解説
通常、このプロパティは、エラーのレポートに使用されますが、いつでも呼び出すことができます。プロパティの開始値は 1 です。
示される位置は、マークアップのテキストの最初の文字です。
<root>
abc<tag/>
</root>
前述の XML テキストでは、最初の行の LinePosition が 2 の場合、これは文字 r
を意味します。2 行目の LinePosition が 5 の場合は文字 t
、3 行目の LinePosition が 3 の場合は r
となります。
LineNumber と組み合わせると、 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