XmlDataDocument.Load Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |
Load(TextReader) |
Ładuje element |
Load(String) |
|
Load(XmlReader) |
Ładuje element |
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.