Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo XObject.IXmlLineInfo.HasLineInfo ()

 

Data di pubblicazione: ottobre 2016

Ottiene un valore che indica se questo XObject contiene informazioni sulla riga.

Spazio dei nomi:   System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

bool IXmlLineInfo.HasLineInfo()

Valore restituito

Type: System.Boolean

true Se il XObject contiene informazioni sulla riga, in caso contrario false.

È possibile chiamare questo metodo per determinare se il XObject contiene informazioni sulla riga valide.

Questo metodo è un'implementazione esplicita dell'interfaccia un membro di un metodo di IXmlLineInfo interfaccia, in modo che per chiamare questo metodo, è necessario eseguire il cast su IXmlLineInfo.

Questo esempio viene caricato un piccolo albero XML da un file, l'impostazione delle opzioni per impostare l'URI di base e mantenere le informazioni sulla riga. Aggiunge quindi un altro elemento che non dispone di informazioni di riga. E quindi stampare le informazioni sulla riga per ogni elemento nell'albero.


                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");

Questo esempio produce il seguente output:


                BaseUri: Test.xml

Element Name        Line Position
------------        ---- --------
Root                1    2
  Child1            2    6
  Child2            3    6
  Child3            No Line Information
  Child4            4    6

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 3.5
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: