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

Definizione

Ottiene il numero di posizione che il XmlReader sottostante ha riportato per XObject.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

Valore della proprietà

Int32 che contiene il numero di posizione riportato dal XmlReader per XObject.An Int32 that contains the line position reported by the XmlReader for this XObject.

Implementazioni

Esempi

Questo esempio viene caricato un piccolo albero XML da un file, impostando le opzioni per impostare l'URI di base e mantenere le informazioni sulla riga.This example loads a small XML tree from a file, setting the options to set base URI and retain line information. Aggiunge quindi un altro elemento che non ha le informazioni sulla riga.It then adds another element that does not have line information. Quindi stampa le informazioni sulla riga per ogni elemento nell'albero.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  

Questo esempio produce il seguente output: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  

Commenti

Questo metodo è un'implementazione di membro di interfaccia esplicita di un metodo nel IXmlLineInfo interfaccia, in modo che per chiamare questo metodo, è necessario eseguire il cast a IXmlLineInfo.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.

Si applica a

Vedi anche