XmlTextReader.LinePosition Propriedade
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém a posição da linha atual.
public:
property int LinePosition { int get(); };
public int LinePosition { get; }
member this.LinePosition : int
Public ReadOnly Property LinePosition As Integer
A posição da linha atual.
O exemplo a seguir exibe cada nó, incluindo sua profundidade, número de linha e posição de linha.
#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
Observação
A partir do .NET Framework 2.0, recomendamos que você crie XmlReader instâncias usando o XmlReader.Create método para aproveitar a nova funcionalidade.
Essa propriedade é mais comumente usada para relatórios de erros, mas pode ser chamada a qualquer momento. O valor inicial da propriedade é 1
.
A posição indicada é o primeiro caractere de texto na marcação.
<root>
abc<tag/>
</root>
Na primeira linha do texto XML anterior, um LinePosition
dos 2
corresponde ao caractere r
; na segunda linha, um LinePosition
deles 5
corresponde ao caractere t
; e na terceira linha, um LinePosition
dos 3
corresponde ao caractere r
.
Combinado com LineNumber, um valor de 1,1
indica o início do documento.