XObject.IXmlLineInfo.LinePosition XObject.IXmlLineInfo.LinePosition XObject.IXmlLineInfo.LinePosition Property

Definition

Ruft die Zeilenposition ab, die der zugrunde liegende XmlReader für dieses XObject angegeben hat.Gets the line position that the underlying XmlReader reported for this XObject.

property int System::Xml::IXmlLineInfo::LinePosition { int get(); };
int System.Xml.IXmlLineInfo.LinePosition { get; }
 ReadOnly Property LinePosition As Integer Implements IXmlLineInfo.LinePosition

Eigenschaftswert

Ein Int32, das die Zeilenposition enthält, die vom XmlReader für dieses XObject angegeben wurde.An Int32 that contains the line position reported by the XmlReader for this XObject.

Implementiert

Beispiele

In diesem Beispiel wird eine kleine XML-Struktur aus einer Datei geladen, die Optionen zum Festlegen des Basis-URI und zum Beibehalten von Zeilen Informationen festgelegt.This example loads a small XML tree from a file, setting the options to set base URI and retain line information. Anschließend wird ein weiteres Element hinzugefügt, das nicht über Zeilen Informationen verfügt.It then adds another element that does not have line information. Anschließend werden die Zeilen Informationen für jedes Element in der Struktur ausgegeben.It then prints the line information for each element in the tree.

string markup = @"<Root>  
    <Child1 />  
    <Child2 />  
    <Child4 />  
</Root>";  
  
File.WriteAllText("Test.xml", markup);  
  
XElement po = XElement.Load("Test.xml",  
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);  
  
// add a node to the tree.  
// the newly added node will not have line information.  
po.Element("Child2").AddAfterSelf(new XElement("Child3"));  
  
string[] splitUri = po.BaseUri.Split('/');  
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);  
Console.WriteLine();  
Console.WriteLine("{0}{1}{2}",  
    "Element Name".PadRight(20),  
    "Line".PadRight(5),  
    "Position");  
Console.WriteLine("{0}{1}{2}",  
    "------------".PadRight(20),  
    "----".PadRight(5),  
    "--------");  
foreach (XElement e in po.DescendantsAndSelf())  
    Console.WriteLine("{0}{1}{2}",  
        ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),  
        ((IXmlLineInfo)e).HasLineInfo() ?  
            ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5) :  
            "",  
        ((IXmlLineInfo)e).HasLineInfo() ?  
            ((IXmlLineInfo)e).LinePosition.ToString() :  
            "No Line Information");  
Dim markup As String = _  
    "<Root>" & Environment.NewLine & _  
    "    <Child1 />" & Environment.NewLine & _  
    "    <Child2 />" & Environment.NewLine & _  
    "    <Child4 />" & Environment.NewLine & _  
    "</Root>"  
  
File.WriteAllText("Test.xml", markup)  
  
Dim po As XElement = XElement.Load("Test.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  
  
' add a node to the tree.  
' the newly added node will not have line information.  
po.Element("Child2").AddAfterSelf(New XElement("Child3"))  
  
Dim splitUri() As String = po.BaseUri.Split("/"c)  
Console.WriteLine("BaseUri: {0}", splitUri(splitUri.Length - 1))  
Console.WriteLine()  
Console.WriteLine("{0}{1}{2}", _  
    "Element Name".PadRight(20), _  
    "Line".PadRight(5), _  
    "Position")  
Console.WriteLine("{0}{1}{2}", _  
    "------------".PadRight(20), _  
    "----".PadRight(5), _  
    "--------")  
For Each e As XElement In po.DescendantsAndSelf()  
    Console.WriteLine("{0}{1}{2}", _  
        ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _  
        IIf(DirectCast(e, IXmlLineInfo).HasLineInfo(), _  
            DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _  
            ""), _  
        IIf(DirectCast(e, IXmlLineInfo).HasLineInfo(), _  
            DirectCast(e, IXmlLineInfo).LinePosition.ToString(), _  
            "No Line Information"))  
Next  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

BaseUri: Test.xml  
  
Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child1            2    6  
  Child2            3    6  
  Child3            No Line Information  
  Child4            4    6  

Hinweise

Diese Methode ist eine explizite Schnittstellenmember-Implementierung einer Methode in IXmlLineInfo der-Schnittstelle IXmlLineInfo. um diese Methode aufzurufen, müssen Sie daher in umwandeln.This method is an explicit interface member implementation of a method in the IXmlLineInfo interface, so in order to call this method, it is necessary to cast to IXmlLineInfo.

Gilt für:

Siehe auch