XElement.Load 方法

定義

從 URI 指定的檔案、XElementTextReader,建立新的 XmlReader

多載

Load(TextReader, LoadOptions)

XElement 載入 TextReader,並選擇性地保留泛空白字元和行資訊。

Load(XmlReader, LoadOptions)

XElement 載入 XmlReader,並選擇性地保留泛空白字元、設定基底 URI,以及保留行資訊。

Load(String, LoadOptions)

從檔案載入 XElement,並選擇性地保留泛空白字元、設定基底 URI,以及保留行資訊。

Load(Stream, LoadOptions)

使用指定的資料流建立新的 XElement 執行個體,並選擇性地保留空白字元、設定基底 URI,以及保留行資訊。

Load(TextReader)

XElement 載入 TextReader

Load(String)

從檔案載入 XElement

Load(Stream)

使用指定的資料流,建立新的 XElement 執行個體。

Load(XmlReader)

XElement 載入 XmlReader

備註

您可以使用此方法的其中一個多載,從檔案、 TextReaderXmlReader 載入 XElement

若要從包含 XML 的字串建立 XElement ,請使用 Parse

Load(TextReader, LoadOptions)

XElement 載入 TextReader,並選擇性地保留泛空白字元和行資訊。

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::TextReader ^ textReader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Load (System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.TextReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Load (textReader As TextReader, options As LoadOptions) As XElement

參數

textReader
TextReader

TextReader,將從中讀取 XElement 內容。

options
LoadOptions

LoadOptions,其指定泛空白字元 (White Space) 的行為,以及是否要載入基底 URI 和行資訊。

傳回

XElement

XElement,包含從指定之 TextReader 讀取的 XML。

範例

下列範例會以兩種不同的方式從 StringReader 載入 : XElement 保留空白字元,而不會保留空白字元。 然後,它會使用查詢來判斷產生的 XML 樹狀結構中的空白字元節點數目。

TextReader sr;  
int whiteSpaceNodes;  

sr = new StringReader("<Root> <Child> </Child> </Root>");  
XElement xmlTree1 = XElement.Load(sr, LoadOptions.None);  
sr.Close();  
whiteSpaceNodes = xmlTree1  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes);  

sr = new StringReader("<Root> <Child> </Child> </Root>");  
XElement xmlTree2 = XElement.Load(sr, LoadOptions.PreserveWhitespace);  
sr.Close();  
whiteSpaceNodes = xmlTree2  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes);  
Dim sr As TextReader  
Dim whiteSpaceNodes As Integer  

sr = New StringReader("<Root> <Child> </Child> </Root>")  
Dim xmlTree1 As XElement = XElement.Load(sr, LoadOptions.None)  
sr.Close()  
whiteSpaceNodes = xmlTree1 _  
    .DescendantNodesAndSelf() _  
    .OfType(Of XText)() _  
    .Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _  
    .Count()  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)  

sr = New StringReader("<Root> <Child> </Child> </Root>")  
Dim xmlTree2 As XElement = XElement.Load(sr, LoadOptions.PreserveWhitespace)  
sr.Close()  
whiteSpaceNodes = xmlTree2 _  
    .DescendantNodesAndSelf() _  
    .OfType(Of XText)() _  
    .Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _  
    .Count()  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)  

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

Count of white space nodes (not preserving whitespace): 0  
Count of white space nodes (preserving whitespace): 3  

下列範例會在從 TextReader 載入 時載入行資訊。 然後,它會列印行資訊。

TextReader sr = new StringReader(  
@"<Root>  
  <Child>  
    <GrandChild1/>  
    <GrandChild2/>  
  </Child>  
</Root>");  
XElement po = XElement.Load(sr,  
    LoadOptions.SetLineInfo);  
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).LineNumber.ToString().PadRight(5),  
        ((IXmlLineInfo)e).LinePosition);  
Dim sr As TextReader = New StringReader( _  
    "<Root>" & Environment.NewLine & _  
    "  <Child>" & Environment.NewLine & _  
    "    <GrandChild1/>" & Environment.NewLine & _  
    "    <GrandChild2/>" & Environment.NewLine & _  
    "  </Child>" & Environment.NewLine & _  
    "</Root>")  
Dim po As XElement = XElement.Load(sr, LoadOptions.SetLineInfo)  
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), _  
        (DirectCast(e, IXmlLineInfo)).LineNumber.ToString().PadRight(5), _  
        (DirectCast(e, IXmlLineInfo)).LinePosition)  
Next  

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

Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child             2    4  
    GrandChild1     3    6  
    GrandChild2     4    6  

備註

如果縮排來源 XML,在 中 options 設定 PreserveWhitespace 旗標會讓讀取器讀取來源 XML 中的所有空白字元。 系統會針對重大且不重要的空白字元建立類型的 XText 節點。

如果來源 XML 縮排,未在 中 options 設定 PreserveWhitespace 旗標,則讀取器會忽略來源 XML 中所有無意義的空白字元。 XML 樹狀結構會建立,而不會有任何文位元組點用於不重要的空白字元。

如果來源 XML 未縮排,則 PreserveWhitespace 設定 中的 options 旗標沒有任何作用。 仍然會保留重要的空白字元,而且沒有不重要的空白字元範圍,可能會導致建立更多空白字元文位元組點。

如需詳細資訊,請參閱 在載入或剖析 XML 時保留空白字元 ,以及在 序列化時保留空白字元

使用 Parse 從包含 XML 的字串建立 XElement

TextReader 載入 時,設定 SetBaseUri 不會有任何作用。

如果您設定 SetLineInfo 旗標,效能會受到負面影響。

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

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

另請參閱

適用於

Load(XmlReader, LoadOptions)

XElement 載入 XmlReader,並選擇性地保留泛空白字元、設定基底 URI,以及保留行資訊。

public:
 static System::Xml::Linq::XElement ^ Load(System::Xml::XmlReader ^ reader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Load (System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options);
static member Load : System.Xml.XmlReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Load (reader As XmlReader, options As LoadOptions) As XElement

參數

reader
XmlReader

XmlReader,將從中讀取 XElement 的內容。

options
LoadOptions

LoadOptions,其指定泛空白字元 (White Space) 的行為,以及是否要載入基底 URI 和行資訊。

傳回

XElement

XElement,包含從指定之 XmlReader 讀取的 XML。

範例

下列範例會載入它從 載入的 XmlReader 行資訊。 然後,它會列印行資訊。

string markup =  
@"<Root>  
    <Child>  
        <GrandChild/>  
    </Child>  
</Root>";  

// Create a reader and move to the content.  
using (XmlReader nodeReader = XmlReader.Create(new StringReader(markup)))  
{  
    // the reader must be in the Interactive state in order to  
    // Create a LINQ to XML tree from it.  
    nodeReader.MoveToContent();  

    XElement xRoot = XElement.Load(nodeReader, LoadOptions.SetLineInfo);  
    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 xRoot.DescendantsAndSelf())  
        Console.WriteLine("{0}{1}{2}",  
            ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),  
            ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),  
            ((IXmlLineInfo)e).LinePosition);  
}  
Dim markup As String = _  
    "<Root>" & Environment.NewLine & _  
    "    <Child>" & Environment.NewLine & _  
    "        <GrandChild/>" & Environment.NewLine & _  
    "    </Child>" & Environment.NewLine & _  
    "</Root>"  

' Create a reader and move to the content.  
Using nodeReader As XmlReader = XmlReader.Create(New StringReader(markup))  

    ' the reader must be in the Interactive state in order to  
    ' Create a LINQ to XML tree from it.  
    nodeReader.MoveToContent()  

    Dim xRoot As XElement = XElement.Load(nodeReader, LoadOptions.SetLineInfo)  
    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 xRoot.DescendantsAndSelf()  
        Console.WriteLine("{0}{1}{2}", _  
            ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _  
            (DirectCast(e, IXmlLineInfo)).LineNumber.ToString().PadRight(5), _  
            (DirectCast(e, IXmlLineInfo)).LinePosition)  
    Next  
End Using  

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

Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child             2    6  
    GrandChild      3    10  

備註

藉由從 DOM 檔建立 XmlNodeReader ,然後使用 XmlNodeReader 建立 XElement ,這個方法可用來在LINQ to XML樹狀結構中建立 DOM 檔的複本。

使用 Parse 從包含 XML 的字串建立 XElement

XmlReader 載入 時,設定 PreserveWhitespace 無效。 XmlReader將會設定為讀取空白字元。 LINQ to XML樹狀結構會填入讀取器介面的空白字元節點。 不論是否已 PreserveWhitespace 設定,這都會是行為。

XmlReader可能具有有效的基底 URI。 如果您設定 SetBaseUri ,基礎 URI 將會從 所 XmlReader 報告的基底 URI 中設定在 XML 樹狀結構中。

XmlReader可能具有有效的行資訊。 如果您設定 SetLineInfo ,則行資訊將會從 所 XmlReader 報告的行資訊中設定在 XML 樹狀結構中。

如果您設定 SetLineInfo 旗標,效能會受到負面影響。

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

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

另請參閱

適用於

Load(String, LoadOptions)

從檔案載入 XElement,並選擇性地保留泛空白字元、設定基底 URI,以及保留行資訊。

public:
 static System::Xml::Linq::XElement ^ Load(System::String ^ uri, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Load (string uri, System.Xml.Linq.LoadOptions options);
static member Load : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Load (uri As String, options As LoadOptions) As XElement

參數

uri
String

URI 字串,參照要載入到 XElement 的檔案。

options
LoadOptions

LoadOptions,其指定泛空白字元 (White Space) 的行為,以及是否要載入基底 URI 和行資訊。

傳回

XElement

XElement,包含指定之檔案的內容。

範例

下列範例會以兩種不同的方式從檔案載入 XElement :保留空白字元,而不會保留空白字元。 然後,它會使用查詢來判斷產生的 XML 樹狀結構中的空白字元節點數目。

XElement xmlTree1 = XElement.Parse("<Root> <Child>  </Child> </Root>", LoadOptions.PreserveWhitespace);  
xmlTree1.Save("Tree.xml");  
Console.WriteLine(xmlTree1);  

int whiteSpaceNodes;  
XElement xmlTree2 = XElement.Load("Tree.xml",  
    LoadOptions.None);  
whiteSpaceNodes = xmlTree2  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes);  

XElement xmlTree3 = XElement.Load("Tree.xml",  
    LoadOptions.PreserveWhitespace);  
whiteSpaceNodes = xmlTree3  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes);  
Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child>  </Child> </Root>", LoadOptions.PreserveWhitespace)  
xmlTree1.Save("Tree.xml")  
Console.WriteLine(xmlTree1)  

Dim whiteSpaceNodes As Integer  
Dim xmlTree2 As XElement = XElement.Load("Tree.xml", LoadOptions.None)  
whiteSpaceNodes = xmlTree2 _  
                  .DescendantNodesAndSelf() _  
                  .OfType(Of XText)() _  
                  .Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _  
                  .Count()  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)  

Dim xmlTree3 As XElement = XElement.Load("Tree.xml", LoadOptions.PreserveWhitespace)  
whiteSpaceNodes = xmlTree3 _  
                  .DescendantNodesAndSelf() _  
                  .OfType(Of XText)() _  
                  .Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _  
                  .Count()  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)  

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

<Root> <Child>  </Child> </Root>  
Count of white space nodes (not preserving whitespace): 0  
Count of white space nodes (preserving whitespace): 3  

下列範例會在載入檔案時載入基底 URI 和行資訊。 然後,它會列印基底 URI 和行資訊。

此範例使用下列資源檔:範例 XML 檔案:一般採購單 (LINQ to XML)

XElement po = XElement.Load("PurchaseOrder.xml",  
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);  
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).LineNumber.ToString().PadRight(5),  
        ((IXmlLineInfo)e).LinePosition);  
Dim po As XElement = XElement.Load("PurchaseOrder.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  
Dim splitUri() As String = 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), _  
    "--------")  
For Each e As XElement In po.DescendantsAndSelf()  
    Console.WriteLine("{0}{1}{2}", _  
        ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString()).PadRight(20), _  
        (DirectCast(e, IXmlLineInfo)).LineNumber.ToString().PadRight(5), _  
        (DirectCast(e, IXmlLineInfo)).LinePosition)  
Next  

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

BaseUri: PurchaseOrder.xml  

Element Name        Line Position  
------------        ---- --------  
PurchaseOrder       2    2  
  Address           3    4  
    Name            4    6  
    Street          5    6  
    City            6    6  
    State           7    6  
    Zip             8    6  
    Country         9    6  
  Address           11   4  
    Name            12   6  
    Street          13   6  
    City            14   6  
    State           15   6  
    Zip             16   6  
    Country         17   6  
  DeliveryNotes     19   4  
  Items             20   4  
    Item            21   6  
      ProductName   22   8  
      Quantity      23   8  
      USPrice       24   8  
      Comment       25   8  
    Item            27   6  
      ProductName   28   8  
      Quantity      29   8  
      USPrice       30   8  
      ShipDate      31   8  

備註

如果縮排來源 XML,在 中 options 設定 PreserveWhitespace 旗標會讓讀取器讀取來源 XML 中的所有空白字元。 系統會針對重大且不重要的空白字元建立類型的 XText 節點。

如果來源 XML 縮排,未在 中 options 設定 PreserveWhitespace 旗標,則讀取器會忽略來源 XML 中所有無意義的空白字元。 XML 樹狀結構會建立,而不會有任何文位元組點用於不重要的空白字元。

如果來源 XML 未縮排,則 PreserveWhitespace 設定 中的 options 旗標沒有任何作用。 仍然會保留重要的空白字元,而且沒有不重要的空白字元範圍,可能會導致建立更多空白字元文位元組點。

如需詳細資訊,請參閱 在載入或剖析 XML 時保留空白字元 ,以及在 序列化時保留空白字元

使用 Parse 從包含 XML 的字串建立 XElement

如果您設定 SetBaseUriSetLineInfo 旗標,效能會受到負面影響。

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

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

另請參閱

適用於

Load(Stream, LoadOptions)

使用指定的資料流建立新的 XElement 執行個體,並選擇性地保留空白字元、設定基底 URI,以及保留行資訊。

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::Stream ^ stream, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Load (System.IO.Stream stream, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.Stream * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Load (stream As Stream, options As LoadOptions) As XElement

參數

stream
Stream

包含 XML 資料的資料流。

options
LoadOptions

指定是否要載入基底 URI 和行資訊的 LoadOptions 物件。

傳回

XElement

XElement 物件,用於建立資料流包含的資料。

備註

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

如果您必須修改 XmlReaderSettings ,請遵循下列步驟:

  1. XmlReader藉由呼叫其中一個採用 XmlReaderSettings 做為參數的多 Create 載來建立 。

  2. XmlReader將 傳遞至作為參數的其中一個 XElement Load 多載 XmlReader

適用於

Load(TextReader)

XElement 載入 TextReader

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::TextReader ^ textReader);
public static System.Xml.Linq.XElement Load (System.IO.TextReader textReader);
static member Load : System.IO.TextReader -> System.Xml.Linq.XElement
Public Shared Function Load (textReader As TextReader) As XElement

參數

textReader
TextReader

TextReader,將從中讀取 XElement 內容。

傳回

XElement

XElement,包含從指定之 TextReader 讀取的 XML。

範例

下列範例會從 StringReader 載入 專案。

TextReader sr = new StringReader("<Root><Child/></Root>");  
XElement xmlTree = XElement.Load(sr);  
sr.Close();  
Console.WriteLine(xmlTree);  
Dim sr As TextReader = New StringReader("<Root><Child/></Root>")  
Dim xmlTree As XElement = XElement.Load(sr)  
sr.Close()  
Console.WriteLine(xmlTree)  

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

<Root>  
  <Child />  
</Root>  

備註

這個方法會將原始 XML 讀入 XML 樹狀結構。 它會捨棄檔案中所有無意義的空白字元。

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

另請參閱

適用於

Load(String)

從檔案載入 XElement

public:
 static System::Xml::Linq::XElement ^ Load(System::String ^ uri);
public static System.Xml.Linq.XElement Load (string uri);
static member Load : string -> System.Xml.Linq.XElement
Public Shared Function Load (uri As String) As XElement

參數

uri
String

URI 字串,參照要載入到新 XElement 的檔案。

傳回

XElement

XElement,包含指定之檔案的內容。

範例

下列範例會建立 XML 樹狀結構、將它儲存至檔案,然後使用此方法從檔案載入 XElement

XElement xmlTree1 = new XElement("Root",  
    new XElement("Child", "content")  
);  
xmlTree1.Save("Tree.xml");  

XElement xmlTree2 = XElement.Load("Tree.xml");  
Console.WriteLine(xmlTree2.Name);  
Dim xmlTree1 As XElement = _   
        <Root>  
            <Child>Content</Child>  
        </Root>  
xmlTree1.Save("Tree.xml")  

Dim xmlTree2 As XElement = XElement.Load("Tree.xml")  
Console.WriteLine(xmlTree2.Name)  

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

Root  

備註

這個方法會將原始 XML 讀入 XML 樹狀結構。 它會捨棄檔案中所有無意義的空白字元。

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

另請參閱

適用於

Load(Stream)

使用指定的資料流,建立新的 XElement 執行個體。

public:
 static System::Xml::Linq::XElement ^ Load(System::IO::Stream ^ stream);
public static System.Xml.Linq.XElement Load (System.IO.Stream stream);
static member Load : System.IO.Stream -> System.Xml.Linq.XElement
Public Shared Function Load (stream As Stream) As XElement

參數

stream
Stream

包含 XML 資料的資料流。

傳回

XElement

XElement 物件,用於讀取資料流中包含的資料。

備註

如果您想要控制負載選項,請使用 Load 採用 LoadOptions 做為參數的多載。

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

如果您必須修改 XmlReaderSettings ,請遵循下列步驟:

  1. XmlReader藉由呼叫其中一個採用 XmlReaderSettings 做為參數的多 Create 載來建立 。

  2. XmlReader將 傳遞至作為參數的其中一個 XElement Load 多載 XmlReader

適用於

Load(XmlReader)

XElement 載入 XmlReader

public:
 static System::Xml::Linq::XElement ^ Load(System::Xml::XmlReader ^ reader);
public static System.Xml.Linq.XElement Load (System.Xml.XmlReader reader);
static member Load : System.Xml.XmlReader -> System.Xml.Linq.XElement
Public Shared Function Load (reader As XmlReader) As XElement

參數

reader
XmlReader

XmlReader,將從中讀取 XElement 的內容。

傳回

XElement

XElement,包含從指定之 XmlReader 讀取的 XML。

範例

下列範例會建立 DOM 檔、從 DOM 檔建立 , XmlNodeReader 並從讀取器具現化樹狀結構。 此程式碼會有效地將 DOM 檔案複製到LINQ to XML樹狀結構。

// Create a DOM document with some content.  
XmlDocument doc = new XmlDocument();  
XmlElement child = doc.CreateElement("Child");  
child.InnerText = "child contents";  
XmlElement root = doc.CreateElement("Root");  
root.AppendChild(child);  
doc.AppendChild(root);  

// Create a reader and move to the content.  
using (XmlNodeReader nodeReader = new XmlNodeReader(doc)) {  
    // the reader must be in the Interactive state in order to  
    // Create a LINQ to XML tree from it.  
    nodeReader.MoveToContent();  

    XElement xRoot = XElement.Load(nodeReader);  
    Console.WriteLine(xRoot);  
}  
' Create a DOM document with some content.  
Dim doc As XmlDocument = New XmlDocument()  
Dim child As XmlElement = doc.CreateElement("Child")  
child.InnerText = "child contents"  
Dim root As XmlElement = doc.CreateElement("Root")  
root.AppendChild(child)  
doc.AppendChild(root)  

' Create a reader and move to the content.  
Using nodeReader = New XmlNodeReader(doc)  
    ' the reader must be in the Interactive state in order to  
    ' Create a LINQ to XML tree from it.  
    nodeReader.MoveToContent()  

    Dim xRoot As XElement = XElement.Load(nodeReader)  
    Console.WriteLine(xRoot)  
End Using  

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

<Root>  
  <Child>child contents</Child>  
</Root>  

備註

藉由從 DOM 檔建立 XmlNodeReader ,然後使用 XmlNodeReader 建立 XElement ,這個方法可用來在LINQ to XML樹狀結構中建立 DOM 檔的複本。

LINQ to XML的載入功能是以 為基礎 XmlReader 。 因此,您可能會攔截多載方法所擲 XmlReader.Create 回的任何例外狀況,以及 XmlReader 讀取和剖析檔的方法。

另請參閱

適用於