Udostępnij za pośrednictwem


XmlDataDocument.Load Metoda

Definicja

XmlDataDocument Ładuje przy użyciu określonego źródła danych i synchronizuje DataSet element z załadowanymi danymi.

Przeciążenia

Load(Stream)

Ładuje element XmlDataDocument z określonego strumienia.

Load(TextReader)

Ładuje element XmlDataDocument z określonego TextReaderelementu .

Load(String)

XmlDataDocument Ładuje przy użyciu określonego adresu URL.

Load(XmlReader)

Ładuje element XmlDataDocument z określonego XmlReaderelementu .

Uwagi

Uwaga

Aby wyświetlić dane XML relacyjne, należy najpierw określić schemat do użycia na potrzeby mapowania danych. Można to zrobić, wywołując metodę ReadXmlSchema lub tworząc tabele i kolumny w obrębie ręcznie DataSet . Ten krok należy wykonać przed wywołaniem metody Load.

XmlDataDocument nie obsługuje tworzenia odwołań do jednostek. Jeśli dane zawierają odwołania do jednostki, Load metoda rozpoznaje i rozszerza wszystkie odwołania do jednostek. Jeśli jednak używasz przeciążenia, które przyjmuje Load XmlReader jako argument, musisz określić, XmlReader który może rozpoznawać jednostki.

Load(Stream)

Ładuje element XmlDataDocument z określonego strumienia.

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)

Parametry

inStream
Stream

Strumień zawierający dokument XML do załadowania.

Uwagi

XmlDataDocument nie obsługuje tworzenia odwołań do jednostek. Jeśli dane zawierają odwołania do jednostki, Load metoda rozpoznaje i rozszerza wszystkie odwołania do jednostek.

Uwaga

Aby wyświetlić dane XML relacyjne, należy najpierw określić schemat do użycia na potrzeby mapowania danych. Można to zrobić, wywołując metodę ReadXmlSchema lub tworząc tabele i kolumny w obrębie ręcznie DataSet . Ten krok należy wykonać przed wywołaniem metody Load.

Dotyczy

Load(TextReader)

Ładuje element XmlDataDocument z określonego TextReaderelementu .

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)

Parametry

txtReader
TextReader

Element TextReader używany do podawania danych XML do dokumentu.

Uwagi

XmlDataDocument nie obsługuje tworzenia odwołań do jednostek. Jeśli dane zawierają odwołania do jednostek, Load metoda rozpoznaje i rozszerza wszystkie odwołania do jednostki.

Uwaga

Aby wyświetlić dane XML relacyjne, należy najpierw określić schemat do użycia na potrzeby mapowania danych. Można to zrobić, wywołując metodę ReadXmlSchema lub tworząc tabele i kolumny ręcznie DataSet . Ten krok należy wykonać przed wywołaniem metody Load.

Dotyczy

Load(String)

XmlDataDocument Ładuje przy użyciu określonego adresu URL.

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)

Parametry

filename
String

Adres URL pliku zawierającego dokument XML do załadowania.

Uwagi

XmlDataDocument nie obsługuje tworzenia odwołań do jednostek. Jeśli dane zawierają odwołania do jednostek, Load metoda rozpoznaje i rozszerza wszystkie odwołania do jednostki.

Uwaga

Aby wyświetlić dane XML relacyjne, należy najpierw określić schemat do użycia na potrzeby mapowania danych. Można to zrobić, wywołując metodę ReadXmlSchema lub tworząc tabele i kolumny ręcznie DataSet . Ten krok należy wykonać przed wywołaniem metody Load.

Dotyczy

Load(XmlReader)

Ładuje element XmlDataDocument z określonego XmlReaderelementu .

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)

Parametry

reader
XmlReader

Plik XmlReader zawierający dokument XML do załadowania.

Wyjątki

Załadowany kod XML zawiera odwołania do jednostek, a czytelnik nie może rozpoznać jednostek.

Przykłady

Poniższy przykład modyfikuje cenę książki przy użyciu DataSet metod .

#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

W przykładzie użyto następujących dwóch plików wejściowych.

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>

Uwagi

XmlDataDocument nie obsługuje tworzenia odwołań do jednostek. Jeśli źródło danych zawiera odwołania do jednostki, należy utworzyć element XmlValidatingReader z właściwością ustawioną EntityHandling na EntityHandling.ExpandEntities (jest to domyślne zachowanie) i przekazać XmlValidatingReader element do Load metody . Jeśli nie używasz metody XmlValidatingReader, Load metoda zgłasza wyjątek.

Metoda Load zawsze zachowuje znaczną ilość białych znaków. Właściwość PreserveWhitespace określa, czy odstęp jest zachowany. Wartość domyślna to false, białe znaki nie są zachowywane.

Jeśli czytelnik jest w stanie początkowym (czyli ReadState=ReadState.Initial), Load używa całej zawartości czytnika i tworzy dom z tego, co znajduje.

Jeśli czytnik jest już umieszczony w węźle o głębokości "n", ta metoda ładuje ten węzeł i wszystkie kolejne elementy równorzędne do tagu końcowego zamykające głębokość "n". Ma to następujące wyniki.

Jeśli bieżący węzeł i jego następujące elementy równorzędne wyglądają podobnie do następującego:

<!--comment--><element1>one</element1><element2>two</element2>  

Load zgłasza wyjątek, ponieważ dokument nie może mieć dwóch elementów na poziomie głównym. Jeśli bieżący węzeł i jego następujące elementy równorzędne wyglądają podobnie do następującego:

<!--comment--><?process  
    instruction?><!--comment--></endtag>  

Load powiedzie się; jednak będziesz mieć niekompletne drzewo DOM, ponieważ nie ma elementu poziomu głównego. Przed zapisaniem dokumentu musisz dodać element poziomu głównego; Save w przeciwnym razie metoda zgłasza wyjątek.

Jeśli czytnik jest umieszczony w węźle liścia, który jest nieprawidłowy dla poziomu głównego dokumentu (na przykład biały odstęp lub węzeł atrybutu), czytnik będzie nadal odczytywany, dopóki nie zostanie umieszczony w węźle, który może być używany dla katalogu głównego. Dokument rozpoczyna ładowanie w tym momencie.

Dotyczy