XElement.Load 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從 URI 指定的檔案、XElement從 、 或 TextReader建立一個新的XmlReader檔案。
多載
| 名稱 | Description |
|---|---|
| Load(TextReader, LoadOptions) |
從 載入 ,XElementTextReader選擇性保留空白並保留行資訊。 |
| Load(XmlReader, LoadOptions) | |
| Load(String, LoadOptions) |
載入 和 XElement from檔案,可選擇保留空白、設定基礎 URI,並保留行資訊。 |
| Load(Stream, LoadOptions) |
透過使用指定的串流建立新 XElement 實例,並可選擇保留空白空間、設定基礎 URI 並保留行資訊。 |
| Load(TextReader) | |
| Load(String) |
從檔案載入 和 XElement 。 |
| Load(Stream) |
透過指定的串流建立一個新 XElement 實例。 |
| Load(XmlReader) |
備註
你可以利用此方法的超載來從檔案載入 、 XElement a TextReader、 或 XmlReader。
若要從包含 XML 的字串建立 , XElement 請使用 Parse。
Load(TextReader, LoadOptions)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
從 載入 ,XElementTextReader選擇性保留空白並保留行資訊。
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
A LoadOptions 指定空白空間行為,以及是否載入基底 URI 和行資訊。
傳回
一個 XElement 包含從指定 TextReader.
範例
以下範例以兩種不同方式載入 a XElementStringReader :保留留白,或不保留留白。 接著它會使用查詢來確定產生的 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 有縮排,將旗標設 PreserveWhitespace 入 options 後,讀取器會讀取原始 XML 中所有空白。 有型 XText 節點會為顯著與不重要空白區建立。
如果原始 XML 有縮排,未設定 PreserveWhitespace 該標誌 options 會導致讀取器忽略原始 XML 中所有無關緊要的空白。 XML 樹是在不包含任何文字節點的情況下建立的,空白空間不重要。
如果原始 XML 沒有縮排,輸入 PreserveWhitespace 旗標 options 也不會有影響。 仍有顯著的空白區域被保留,且沒有無關緊要的空白區域,這些空白區域可能導致更多空白文字節點的產生。
欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。
使用 Parse 以建立 XElement 包含 XML 的字串。
SetBaseUri設定在從 TextReader.
如果你設旗 SetLineInfo 子,會有績效懲罰。
行資訊在載入 XML 文件後立即準確。 如果你在載入文件後修改 XML 樹,該行資訊可能會變得毫無意義。
LINQ 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
另請參閱
適用於
Load(XmlReader, LoadOptions)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
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
參數
- options
- LoadOptions
A LoadOptions 指定空白空間行為,以及是否載入基底 URI 和行資訊。
傳回
範例
以下範例載入從 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 轉 XML 樹中建立 DOM 文件的副本。
使用 Parse 以建立 XElement 包含 XML 的字串。
從 PreserveWhitespace載入時 設定XmlReader不適用。 它們 XmlReader 會被設定成要麼讀取空白空間,要麼不讀。 LINQ 轉 XML 樹會填充讀取器所呈現的空白節點。 不管設定 PreserveWhitespace 是否設定,這個行為都會持續發生。
他們 XmlReader 可能有有效的基礎 URI,也可能沒有。 如果你設定 SetBaseUri,基礎 URI 會從 由 報告的基礎 URI XmlReader在 XML 樹中被設定。
他們 XmlReader 可能有有效的線路資訊,也可能沒有。 如果你設定 SetLineInfo,行資訊會在 XML 樹中由 所報告 XmlReader的行資訊設定。
如果你設旗 SetLineInfo 子,會有績效懲罰。
行資訊在載入 XML 文件後立即準確。 如果你在載入文件後修改 XML 樹,該行資訊可能會變得毫無意義。
LINQ 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
另請參閱
適用於
Load(String, LoadOptions)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
載入 和 XElement from檔案,可選擇保留空白、設定基礎 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
參數
- options
- LoadOptions
A LoadOptions 指定空白空間行為,以及是否載入基底 URI 和行資訊。
傳回
一個 XElement 包含指定檔案內容的
範例
以下範例以兩種不同方式載入 an XElement from a 檔案:保留空白空間,以及不保留空白空間。 接著它會使用查詢來確定產生的 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 轉 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 有縮排,將旗標設 PreserveWhitespace 入 options 後,讀取器會讀取原始 XML 中所有空白。 有型 XText 節點會為顯著與不重要空白區建立。
如果原始 XML 有縮排,未設定 PreserveWhitespace 該標誌 options 會導致讀取器忽略原始 XML 中所有無關緊要的空白。 XML 樹是在不包含任何文字節點的情況下建立的,空白空間不重要。
如果原始 XML 沒有縮排,輸入 PreserveWhitespace 旗標 options 也不會有影響。 仍有顯著的空白區域被保留,且沒有無關緊要的空白區域,這些空白區域可能導致更多空白文字節點的產生。
欲了解更多資訊,請參閱 載入或解析 XML 時保留空白 ,以及序列 化時保留空白。
使用 Parse 以建立 XElement 包含 XML 的字串。
如果你設定了 和 SetBaseUriSetLineInfo 旗標,會有績效懲罰。
基礎 URI 與行資訊在載入 XML 文件後立即準確。 如果你在載入文件後修改 XML 樹,基礎 URI 和行資訊可能會變得毫無意義。
LINQ 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
另請參閱
適用於
Load(Stream, LoadOptions)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
透過使用指定的串流建立新 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
一個 LoadOptions 指定是否載入基底 URI 與行資訊的物件。
傳回
一個 XElement 用來讀取串流所包含資料的物件。
備註
LINQ 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
如果你需要修改 XmlReaderSettings,請依照以下步驟進行:
透過呼叫XmlReader一個以參數為Create參數的超載來建立 。XmlReaderSettings
適用於
Load(TextReader)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
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 包含從指定 TextReader.
範例
以下範例從 中載入一個元素 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 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
另請參閱
適用於
Load(String)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
從檔案載入 和 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
參數
傳回
一個 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 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
另請參閱
適用於
Load(Stream)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
透過指定的串流建立一個新 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 用來讀取串流中資料的物件。
備註
如果你想控制負載選項,可以用 Load take 的 LoadOptions 超載作為參數。
LINQ 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。
如果你需要修改 XmlReaderSettings,請依照以下步驟進行:
透過呼叫XmlReader一個以參數為Create參數的超載來建立 。XmlReaderSettings
適用於
Load(XmlReader)
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
- 來源:
- XElement.cs
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
參數
傳回
範例
以下範例建立 DOM 文件,從 DOM 文件建立 , XmlNodeReader 並從讀取器實例化樹狀結構。 此程式碼實際上將 DOM 文件複製成 LINQ 轉 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 轉 XML 樹中建立 DOM 文件的副本。
LINQ 轉 XML 的載入功能是建立在 XmlReader之上。 因此,你可能會發現超載方法和XmlReader.Create讀取與解析文件的方法拋出XmlReader的任何異常。