XObject.IXmlLineInfo.LineNumber 屬性

定義

取得基礎 XmlReader 所回報此 XObject 的行號。

C#
int System.Xml.IXmlLineInfo.LineNumber { get; }

屬性值

Int32,包含 XmlReader 所報告之此 XObject 的行號。

實作

範例

本範例會從檔案載入小型 XML 樹狀結構,設定選項以設定基底 URI 並保留行資訊。 然後,它會新增另一個沒有行資訊的專案。 然後,它會列印樹狀結構中每個專案的行資訊。

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

這個範例會產生下列輸出:

BaseUri: Test.xml  

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

備註

這個方法是 介面中 IXmlLineInfo 方法的明確介面成員實作,因此若要呼叫這個方法,就必須轉換成 IXmlLineInfo

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱