共用方式為


XmlDataDocument.Load 方法

定義

使用指定的資料來源載入 XmlDataDocument,並且將 DataSet 與載入的資料同步。

多載

Load(Stream)

從指定的資料流載入 XmlDataDocument

Load(TextReader)

從指定的 TextReader 載入 XmlDataDocument

Load(String)

使用指定的 URL 載入 XmlDataDocument

Load(XmlReader)

從指定的 XmlReader 載入 XmlDataDocument

備註

注意

若要以關係方式檢視 XML 資料,您必須先指定要用於資料對應的架構。 您可以藉由呼叫 ReadXmlSchema 方法或手動建立 DataSet 資料表和資料行來完成。 必須先完成此步驟,才能呼叫 Load

XmlDataDocument 不支援建立實體參考。 如果資料包含實體參考,方法 Load 會解析並展開任何實體參考。 不過,如果您使用採用 XmlReader 做為引數的多 Load 載,則必須指定 XmlReader 可以解析實體的 。

Load(Stream)

從指定的資料流載入 XmlDataDocument

public:
 override void Load(System::IO::Stream ^ inStream);
public override void Load (System.IO.Stream inStream);
override this.Load : System.IO.Stream -> unit
Public Overrides Sub Load (inStream As Stream)

參數

inStream
Stream

包含要載入之 XML 文件的資料流。

備註

XmlDataDocument 不支援建立實體參考。 如果資料包含實體參考,方法 Load 會解析並展開任何實體參考。

注意

若要以關係方式檢視 XML 資料,您必須先指定要用於資料對應的架構。 您可以藉由呼叫 ReadXmlSchema 方法或手動建立 DataSet 資料表和資料行來完成。 必須先完成此步驟,才能呼叫 Load

適用於

Load(TextReader)

從指定的 TextReader 載入 XmlDataDocument

public:
 override void Load(System::IO::TextReader ^ txtReader);
public override void Load (System.IO.TextReader txtReader);
override this.Load : System.IO.TextReader -> unit
Public Overrides Sub Load (txtReader As TextReader)

參數

txtReader
TextReader

用於將 XML 資料送入文件中的 TextReader

備註

XmlDataDocument 不支援建立實體參考。 如果資料包含實體參考,方法 Load 會解析並展開任何實體參考。

注意

若要以關係方式檢視 XML 資料,您必須先指定要用於資料對應的架構。 您可以藉由呼叫 ReadXmlSchema 方法或手動建立 DataSet 資料表和資料行來完成。 必須先完成此步驟,才能呼叫 Load

適用於

Load(String)

使用指定的 URL 載入 XmlDataDocument

public:
 override void Load(System::String ^ filename);
public override void Load (string filename);
override this.Load : string -> unit
Public Overrides Sub Load (filename As String)

參數

filename
String

包含要載入之 XML 文件的檔案的 URL。

備註

XmlDataDocument 不支援建立實體參考。 如果資料包含實體參考,方法 Load 會解析並展開任何實體參考。

注意

若要以關係方式檢視 XML 資料,您必須先指定要用於資料對應的架構。 您可以藉由呼叫 ReadXmlSchema 方法或手動建立 DataSet 資料表和資料行來完成。 必須先完成此步驟,才能呼叫 Load

適用於

Load(XmlReader)

從指定的 XmlReader 載入 XmlDataDocument

public:
 override void Load(System::Xml::XmlReader ^ reader);
public override void Load (System.Xml.XmlReader reader);
override this.Load : System.Xml.XmlReader -> unit
Public Overrides Sub Load (reader As XmlReader)

參數

reader
XmlReader

XmlReader,包含要載入的 XML 文件。

例外狀況

載入的 XML 包含實體參考,並且讀取器不能解析實體。

範例

下列範例會使用 DataSet 方法來修改書籍的價格。

#using <System.dll>
#using <System.Data.dll>
#using <System.Xml.dll>

using namespace System;
using namespace System::Data;
using namespace System::Xml;
int main()
{
   // Create an XmlDataDocument.
   XmlDataDocument^ doc = gcnew XmlDataDocument;

   // Load the schema file.
   doc->DataSet->ReadXmlSchema( "store.xsd" );

   // Load the XML data.
   XmlTextReader^ reader = gcnew XmlTextReader( "2books.xml" );
   reader->MoveToContent(); // Moves the reader to the root node.
   doc->Load( reader );

   // Update the price on the first book using the DataSet methods.
   DataTable^ books = doc->DataSet->Tables["book"];
   books->Rows[0]["price"] = "12.95";
   Console::WriteLine( "Display the modified XML data..." );
   doc->Save( Console::Out );
}
using System;
using System.Data;
using System.Xml;
public class Sample {
    public static void Main() {
        // Create an XmlDataDocument.
        XmlDataDocument doc = new XmlDataDocument();

        // Load the schema file.
        doc.DataSet.ReadXmlSchema("store.xsd");

        // Load the XML data.
        XmlTextReader reader = new XmlTextReader("2books.xml");
        reader.MoveToContent(); // Moves the reader to the root node.
        doc.Load(reader);

        // Update the price on the first book using the DataSet methods.
        DataTable books = doc.DataSet.Tables["book"];
        books.Rows[0]["price"] = "12.95";

        Console.WriteLine("Display the modified XML data...");
        doc.Save(Console.Out);
    }
} // End class
Imports System.Data
Imports System.Xml

public class Sample

  public shared sub Main()

      'Create an XmlDataDocument.
      Dim doc as XmlDataDocument = new XmlDataDocument()

      'Load the schema.
      doc.DataSet.ReadXmlSchema("store.xsd") 
 
      'Load the XML data.
      Dim reader as XmlTextReader = new XmlTextReader("2books.xml")
      reader.MoveToContent() 'Moves the reader to the root node.
      doc.Load(reader)
        
     'Change the price on the first book imports the DataSet methods.
     Dim books as DataTable = doc.DataSet.Tables.Item("book")
     books.Rows.Item(0).Item("price") = "12.95"
        
     Console.WriteLine("Display the modified XML data...")
     doc.Save(Console.Out)

  end sub
end class

此範例使用下列兩個輸入檔。

2books.xml

<!--sample XML fragment-->
<bookstore>
  <book genre='novel' ISBN='10-861003-324'>
    <title>The Handmaid's Tale</title>
    <price>19.95</price>
  </book>
  <book genre='novel' ISBN='1-861001-57-5'>
    <title>Pride And Prejudice</title>
    <price>24.95</price>
  </book>
</bookstore>

store.xsd

<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">

 <xsd:element name="bookstore" type="bookstoreType"/>

 <xsd:complexType name="bookstoreType">
  <xsd:sequence maxOccurs="unbounded">
   <xsd:element name="book"  type="bookType"/>
  </xsd:sequence>
 </xsd:complexType>

 <xsd:complexType name="bookType">
  <xsd:sequence>
   <xsd:element name="title" type="xsd:string"/>
   <xsd:element name="author" type="authorName"/>
   <xsd:element name="price"  type="xsd:decimal"/>
  </xsd:sequence>
  <xsd:attribute name="genre" type="xsd:string"/>
 </xsd:complexType>

 <xsd:complexType name="authorName">
  <xsd:sequence>
   <xsd:element name="first-name"  type="xsd:string"/>
   <xsd:element name="last-name" type="xsd:string"/>
  </xsd:sequence>
 </xsd:complexType>

</xsd:schema>

備註

XmlDataDocument 不支援建立實體參考。 如果資料來源包含實體參考,您必須建立 XmlValidatingReader 屬性設定為 EntityHandling.ExpandEntities 的 EntityHandling , (這是預設行為) 並將 傳遞給 XmlValidatingReader Load 方法。 如果您不使用 XmlValidatingReader ,方法 Load 會擲回例外狀況。

方法 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 會擲回例外狀況。

如果將讀取器置於對文件之根層級而言是無效的分葉節點 (例如,泛空白字元或屬性節點) 上,則讀取器會繼續讀取,直到將其置於可用於根層級的節點上。 此時文件會開始載入。

適用於