LoadOptions LoadOptions LoadOptions LoadOptions Enum

定義

XML を解析するときに読み込みオプションを指定します。Specifies load options when parsing XML.

この列挙型には FlagsAttribute 属性があり、メンバー値ではビットごとの組み合わせを使用できます。

public enum class LoadOptions
[System.Flags]
public enum LoadOptions
type LoadOptions = 
Public Enum LoadOptions
継承
属性

フィールド

None None None None 0

意味のない空白を保持したり、ベース URI と行情報を読み込んだりしないでください。Does not preserve insignificant white space or load base URI and line information.

PreserveWhitespace PreserveWhitespace PreserveWhitespace PreserveWhitespace 1

解析の際に意味のない空白が保存されます。Preserves insignificant white space while parsing.

SetBaseUri SetBaseUri SetBaseUri SetBaseUri 2

XmlReader からベース URI 情報を要求し、BaseUri プロパティを介して使用できるようにします。Requests the base URI information from the XmlReader, and makes it available via the BaseUri property.

SetLineInfo SetLineInfo SetLineInfo SetLineInfo 4

XmlReader から行情報を要求し、XObject 上のプロパティを介して使用できるようにします。Requests the line information from the XmlReader and makes it available via properties on XObject.

この例では、ベース URI を設定し、行の情報を保持するためのオプションを設定して、ファイルから、小さな XML ツリーを読み込みます。This example loads a small XML tree from a file, setting the options to set base URI and retain line information. 行情報がない別の要素を追加します。It then adds another element that does not have line information. ツリー内の各要素の行情報が印刷されます。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  

この例を実行すると、次の出力が生成されます。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  

注釈

読み込み時に空白を保持する場合は、XML ツリーで、XML ツリー内のすべての余分な空白が実体化されます。If you preserve white space when loading, all insignificant white space in the XML tree is materialized in the XML tree as is. 空白を維持しない場合、すべての余分な空白は破棄されます。If you do not preserve white space, then all insignificant white space is discarded.

パフォーマンスの低下がある、SetBaseUri と SetLineInfo フラグを設定した場合。There is a performance penalty if you set the SetBaseUri and the SetLineInfo flags.

ベース URI と行情報は XML ドキュメントの読み込み直後に正確です。The base URI and the line information are accurate immediately after loading the XML document. ドキュメントの読み込み後、XML ツリーを変更する場合は、ベース URI と行情報が無意味になる可能性があります。If you modify the XML tree after loading the document, the base URI and line information may become meaningless.

場合、基になるXmlReaderSetBaseUri とフラグは必要があります。 SetLineInfo に影響しないを設定、ベース URI または行情報はありません。If the underlying XmlReader does not have base URI or line information, setting the SetBaseUri and the SetLineInfo flags will have no effect.

この型では、LINQ to XML での読み込み時または解析時の空白の処理方法を制御できます。This type allows you to control how LINQ to XML handles white space when loading or parsing. 詳細については、次を参照してください。読み込みまたは XML の解析中に空白を維持維持空白シリアル化時のします。For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

適用対象

こちらもご覧ください