XObject.IXmlLineInfo.HasLineInfo Metodo

Definizione

Ottiene un valore che indica se XObject contiene o meno informazioni sulla riga.Gets a value indicating whether or not this XObject has line information.

 virtual bool System.Xml.IXmlLineInfo.HasLineInfo() = System::Xml::IXmlLineInfo::HasLineInfo;
bool IXmlLineInfo.HasLineInfo ();
Function HasLineInfo () As Boolean Implements IXmlLineInfo.HasLineInfo

Restituisce

true se XObject contiene informazioni sulla riga. In caso contrario false.true if the XObject has line information; otherwise, false.

Implementazioni

Esempi

Questo esempio carica 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. Viene quindi aggiunto un altro elemento che non contiene informazioni sulla riga.It then adds another element that does not have line information. Vengono quindi stampate 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

È possibile chiamare questo metodo per determinare se il XObject contiene informazioni sulla riga valide.You can call this method to determine whether the XObject contains valid line information.

Questo metodo è un'implementazione esplicita di un membro di interfaccia di un metodo nell'interfaccia IXmlLineInfo. Pertanto, 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