LoadOptions Výčet

Definice

Určuje možnosti načítání při analýze XML.Specifies load options when parsing XML.

Tento výčet má atribut FlagsAttribute, který umožňuje bitové kombinace hodnot členů.

public enum class LoadOptions
[System.Flags]
public enum LoadOptions
[<System.Flags>]
type LoadOptions = 
Public Enum LoadOptions
Dědičnost
LoadOptions
Atributy

Pole

None 0

Nezachovává nevýznamné prázdné znaky nebo načítá základní identifikátor URI a informace o řádku.Does not preserve insignificant white space or load base URI and line information.

PreserveWhitespace 1

Při analýze zachovává nevýznamné prázdné znaky.Preserves insignificant white space while parsing.

SetBaseUri 2

Požaduje základní informace identifikátoru URI z rozhraní XmlReader a zpřístupňuje je prostřednictvím BaseUri Vlastnosti.Requests the base URI information from the XmlReader, and makes it available via the BaseUri property.

SetLineInfo 4

Požaduje informace o řádku z rozhraní XmlReader a zpřístupňuje je prostřednictvím vlastností XObject .Requests the line information from the XmlReader and makes it available via properties on XObject.

Příklady

Tento příklad načte malý strom XML ze souboru a nastaví možnosti pro nastavení základních identifikátorů URI a uchování informací o řádcích.This example loads a small XML tree from a file, setting the options to set base URI and retain line information. Pak přidá další prvek, který nemá informace o řádku.It then adds another element that does not have line information. Pak vytiskne informace o řádku pro každý prvek ve stromové struktuře.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  

Tento příklad vytvoří následující výstup: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  

Poznámky

Pokud při načítání zachováte prázdné místo, všechny nevýznamné prázdné znaky ve stromu XML jsou materializované ve stromu XML tak, jak je.If you preserve white space when loading, all insignificant white space in the XML tree is materialized in the XML tree as is. Pokud nezachováte prázdné znaky, pak se zahodí všechny nevýznamné prázdné znaky.If you do not preserve white space, then all insignificant white space is discarded.

Pokud nastavíte SetBaseUri a příznaky SetLineInfo, dojde ke snížení výkonu.There is a performance penalty if you set the SetBaseUri and the SetLineInfo flags.

Základní identifikátor URI a informace o řádku jsou přesné ihned po načtení dokumentu XML.The base URI and the line information are accurate immediately after loading the XML document. Pokud upravíte strom XML po načtení dokumentu, základní informace o identifikátorech URI a řádku mohou být nevýznamné.If you modify the XML tree after loading the document, the base URI and line information may become meaningless.

Pokud základní XmlReader neobsahuje informace o základním identifikátoru URI nebo řádku, nastavení SetBaseUri a příznaky SetLineInfo nebudou nijak ovlivněny.If the underlying XmlReader does not have base URI or line information, setting the SetBaseUri and the SetLineInfo flags will have no effect.

Tento typ umožňuje ovládat způsob, jakým LINQ to XML při načítání nebo analýze zachytí prázdné znaky.This type allows you to control how LINQ to XML handles white space when loading or parsing. Další informace naleznete v tématu zachování prázdných znaků při načítání nebo analýze XML a Při serializaci zachovejte prázdnéznaky.For more information, see Preserve white space while loading or parsing XML and Preserve white space while serializing.

Platí pro

Viz také