LoadOptions 列舉

定義

指定剖析 XML 時的載入選項。

此列舉支援其成員值的位元組合。

C#
[System.Flags]
public enum LoadOptions
繼承
LoadOptions
屬性

欄位

None 0

請勿保留不重要的泛空白字元,或載入基底 URI 和行資訊。

PreserveWhitespace 1

在剖析時保留不重要的泛空白字元。

SetBaseUri 2

XmlReader 要求基底 URI 資訊,並使其可以透過 BaseUri 屬性使用。

SetLineInfo 4

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  

備註

如果您在載入時保留空白字元,XML 樹狀結構中的所有無意義的空白字元會依原樣具體化在 XML 樹狀結構中。 如果您未保留空白字元,則會捨棄所有不重要的空白字元。

如果您設定 SetBaseUri 和 SetLineInfo 旗標,則效能會降低。

載入 XML 檔之後,基底 URI 和行資訊會立即正確。 如果您在載入檔之後修改 XML 樹狀結構,基底 URI 和行資訊可能會變成無意義。

如果基礎 XmlReader 沒有基底 URI 或行資訊,則設定 SetBaseUri 和 SetLineInfo 旗標將不會有任何作用。

此類型可讓您控制載入或剖析時LINQ to XML如何處理空白字元。 如需詳細資訊,請參閱 在載入或剖析 XML 時保留空白字元 ,以及在 序列化時保留空白字元

適用於

產品 版本
.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
.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
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱