XmlDocument.Load 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從 、 、 TextReader、 或 XmlReader載入指定的 XML 資料Stream。
多載
| 名稱 | Description |
|---|---|
| Load(Stream) |
從指定的串流載入 XML 文件。 |
| Load(TextReader) |
從指定的 TextReader. 載入 XML 文件。 |
| Load(String) |
從指定的 URL 載入 XML 文件。 |
| Load(XmlReader) |
從指定的 XmlReader. 載入 XML 文件。 |
Load(Stream)
從指定的串流載入 XML 文件。
public:
virtual void Load(System::IO::Stream ^ inStream);
public virtual void Load(System.IO.Stream inStream);
abstract member Load : System.IO.Stream -> unit
override this.Load : System.IO.Stream -> unit
Public Overridable Sub Load (inStream As Stream)
參數
- inStream
- Stream
載入包含 XML 文件的串流。
例外狀況
XML 中存在載入或解析錯誤。 此時,a FileNotFoundException 被提升。
備註
備註
此 Load 方法總是保留大量空白。 該 PreserveWhitespace 性質決定了是否保留無關緊要的空白空間,即元素內容的空白空間。 預設為 false;元素內容中的空白不會被保留。
如果你想讓驗證發生,你可以用XmlReaderSettings類別和Create方法建立驗證XmlReader實例。 如需詳細資訊,請參閱 XmlReader 參考頁面的<備註>一節。
此方法是 Microsoft 對文件物件模型(DOM)的擴充。
此方法會自動偵測輸入 XML 的字串格式(例如 UTF-8、ANSI 等)。 如果你的應用程式需要知道讀取串流使用的編碼方式,可以考慮用物件 XmlTextReader 讀取串流,然後用該 XmlTextReader.Encoding 屬性來決定編碼。 如果你需要用物件 XmlDocument 來處理 XML,你可以用該 XmlTextReader 物件來建立一個。 更多資訊請參閱 使用 XPathDocument 讀取 XML 資料及 XmlDocument。
另請參閱
適用於
Load(TextReader)
從指定的 TextReader. 載入 XML 文件。
public:
virtual void Load(System::IO::TextReader ^ txtReader);
public virtual void Load(System.IO.TextReader txtReader);
abstract member Load : System.IO.TextReader -> unit
override this.Load : System.IO.TextReader -> unit
Public Overridable Sub Load (txtReader As TextReader)
參數
- txtReader
- TextReader
它們 TextReader 用來將 XML 資料輸入文件。
例外狀況
XML 中存在載入或解析錯誤。 在這種情況下,文件仍然是空白的。
範例
以下範例使用該 StringReader 類別將一串 XML 資料載入物件中 XmlDocument 。
using System;
using System.IO;
using System.Xml;
public class Sample1
{
public static void CreateElementExample()
{
// Create the XmlDocument.
XmlDocument doc = new();
string xmlData = "<book xmlns:bk='urn:samples'></book>";
doc.Load(new StringReader(xmlData));
// Create a new element and add it to the document.
XmlElement elem = doc.CreateElement("bk", "genre", "urn:samples");
elem.InnerText = "fantasy";
doc.DocumentElement.AppendChild(elem);
Console.WriteLine("Display the modified XML...");
doc.Save(Console.Out);
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
' Create the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
Dim xmlData as string = "<book xmlns:bk='urn:samples'></book>"
doc.Load(new StringReader(xmlData))
' Create a new element and add it to the document.
Dim elem as XmlElement = doc.CreateElement("bk", "genre", "urn:samples")
elem.InnerText = "fantasy"
doc.DocumentElement.AppendChild(elem)
Console.WriteLine("Display the modified XML...")
doc.Save(Console.Out)
end sub
end class
備註
備註
此 Load 方法總是保留大量空白。 該 PreserveWhitespace 性質決定了是否保留無關緊要的空白空間,即元素內容的空白空間。 預設為 false;元素內容中的空白不會被保留。
如果你想讓驗證發生,你可以用XmlReaderSettings類別和Create方法建立驗證XmlReader實例。 如需詳細資訊,請參閱 XmlReader 參考頁面的<備註>一節。
此方法是 Microsoft 對文件物件模型(DOM)的擴充。
另請參閱
適用於
Load(String)
從指定的 URL 載入 XML 文件。
public:
virtual void Load(System::String ^ filename);
public virtual void Load(string filename);
abstract member Load : string -> unit
override this.Load : string -> unit
Public Overridable Sub Load (filename As String)
參數
- filename
- String
載入包含 XML 文件的檔案網址。 URL 可以是本地檔案或 HTTP URL(網址)。
例外狀況
XML 中存在載入或解析錯誤。 此時,a FileNotFoundException 被提升。
filename 是零長度字串,僅包含空白,或包含一個或多個無效字元,定義如下 InvalidPathChars。
filename 為 null。
指定的路徑、檔名或兩者都超過系統定義的最大長度。
指定的路徑無效(例如,它位於未映射的磁碟機上)。
開啟檔案時發生了 I/O 錯誤。
filename 指定一個唯讀的檔案。
-或-
目前平台不支援此操作。
-或-
filename 指定一個目錄。
-或-
來電者沒有所需的權限。
未找到該檔案 filename 。
filename 格式無效。
來電者沒有所需的權限。
備註
備註
此 Load 方法總是保留大量空白。 該 PreserveWhitespace 性質決定了是否保留無關緊要的空白空間,即元素內容的空白空間。 預設為 false;元素內容中的空白不會被保留。
如果你想讓驗證發生,你可以用XmlReaderSettings類別和Create方法建立驗證XmlReader實例。 如需詳細資訊,請參閱 XmlReader 參考頁面的<備註>一節。
此方法是 Microsoft 對文件物件模型(DOM)的擴充。
另請參閱
適用於
Load(XmlReader)
從指定的 XmlReader. 載入 XML 文件。
public:
virtual void Load(System::Xml::XmlReader ^ reader);
public virtual void Load(System.Xml.XmlReader reader);
abstract member Load : System.Xml.XmlReader -> unit
override this.Load : System.Xml.XmlReader -> unit
Public Overridable Sub Load (reader As XmlReader)
參數
- reader
- XmlReader
它們 XmlReader 用來將 XML 資料輸入文件。
例外狀況
XML 中存在載入或解析錯誤。 在這種情況下,文件仍然是空白的。
範例
以下範例將檔案的 books.xml 最後一個書本節點載入 XML 文件中。
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
//Load the document with the last book node.
XmlTextReader reader = new XmlTextReader("books.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;
reader.MoveToContent();
reader.Read();
reader.Skip(); //Skip the first book.
reader.Skip(); //Skip the second book.
doc.Load(reader);
doc.Save(Console.Out);
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
'Load the document with the last book node.
Dim reader As New XmlTextReader("books.xml")
reader.WhitespaceHandling = WhitespaceHandling.None
reader.MoveToContent()
reader.Read()
reader.Skip() 'Skip the first book.
reader.Skip() 'Skip the second book.
doc.Load(reader)
doc.Save(Console.Out)
End Sub
End Class
範例中使用檔案 books.xml,作為輸入。
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
備註
備註
此 Load 方法總是保留大量空白。 該 PreserveWhitespace 性質決定了是否保留無關緊要的空白空間,即元素內容的空白空間。 預設為 false;元素內容中的空白不會被保留。
若讀取器處於初始狀態(ReadState =ReadState.Initial), Load 則會消耗讀取器的完整內容,並從中找到的內容建立 DOM。
如果讀取器已經位於某個深度為「n」的節點上,此方法會載入該節點及所有後續兄弟節點,直到關閉深度「n」的末端標籤。 此結果如下。
如果目前的節點及其兄弟節點長得如下:
<!--comment--><element1>one</element1><element2>two</element2>
Load 拋出例外,因為文件不能同時擁有兩個根層元素。 如果目前的節點及其兄弟節點長得如下:
<!--comment--><?process instruction?><!--comment--></endtag>
Load 成功了,但因為沒有根層元素,DOM 樹是不完整的。 在儲存文件前,你必須先加入根層級元素,否則 Save 會拋出例外。
如果讀取器位於對文件根層無效的葉節點上,例如空白或屬性節點,讀取器會持續讀取,直到被定位到可用於根節點的節點。 檔此時會開始載入。
如果你想讓驗證發生,你可以用XmlReaderSettings類別和Create方法建立驗證XmlReader實例。 如需詳細資訊,請參閱 XmlReader 參考頁面的<備註>一節。
此方法是 Microsoft 對文件物件模型(DOM)的擴充。