XmlDataDocument.Load Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
XmlDataDocument
Načte použití zadaného zdroje dat a synchronizuje je s načtenými datyDataSet.
Přetížení
Load(Stream) |
|
Load(TextReader) |
|
Load(String) |
|
Load(XmlReader) |
|
Poznámky
Poznámka
Abyste mohli data XML zobrazit relačním způsobem, musíte nejprve zadat schéma, které se má použít pro mapování dat. Můžete to provést buď voláním ReadXmlSchema metody, nebo vytvořením tabulek a sloupců v rámci DataSet
ručně. Tento krok musí být proveden před voláním Load
.
XmlDataDocument
nepodporuje vytváření odkazů na entity. Pokud data obsahují odkazy na entity, Load
metoda přeloží a rozbalí všechny odkazy na entity. Pokud ale používáte Load
přetížení, které přebírá XmlReader jako argument, musíte zadat XmlReader
, který dokáže přeložit entity.
Load(Stream)
XmlDataDocument
Načte ze zadaného datového proudu.
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
Datový proud obsahující dokument XML, který se má načíst.
Poznámky
XmlDataDocument
nepodporuje vytváření odkazů na entity. Pokud data obsahují odkazy na entity, Load
metoda přeloží a rozbalí všechny odkazy na entity.
Poznámka
Abyste mohli data XML zobrazit relačním způsobem, musíte nejprve zadat schéma, které se má použít pro mapování dat. Můžete to provést buď voláním ReadXmlSchema metody, nebo vytvořením tabulek a sloupců v rámci DataSet
ručně. Tento krok musí být proveden před voláním Load
.
Platí pro
Load(TextReader)
XmlDataDocument
Načte ze zadaného TextReadersouboru .
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
Slouží TextReader
k datovému kanálu XML do dokumentu.
Poznámky
XmlDataDocument
nepodporuje vytváření odkazů na entity. Pokud data obsahují odkazy na entity, Load
metoda přeloží a rozbalí všechny odkazy na entity.
Poznámka
Abyste mohli data XML zobrazit relačním způsobem, musíte nejprve zadat schéma, které se má použít pro mapování dat. Můžete to provést buď voláním ReadXmlSchema metody, nebo vytvořením tabulek a sloupců v rámci DataSet
ručně. Tento krok musí být proveden před voláním Load
.
Platí pro
Load(String)
XmlDataDocument
Načte pomocí zadané adresy 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
Adresa URL souboru obsahujícího dokument XML, který se má načíst.
Poznámky
XmlDataDocument
nepodporuje vytváření odkazů na entity. Pokud data obsahují odkazy na entity, Load
metoda přeloží a rozbalí všechny odkazy na entity.
Poznámka
Abyste mohli data XML zobrazit relačním způsobem, musíte nejprve zadat schéma, které se má použít pro mapování dat. Můžete to provést buď voláním ReadXmlSchema metody, nebo vytvořením tabulek a sloupců v rámci DataSet
ručně. Tento krok musí být proveden před voláním Load
.
Platí pro
Load(XmlReader)
XmlDataDocument
Načte ze zadaného XmlReadersouboru .
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
Obsahující XmlReader
dokument XML, který se má načíst.
Výjimky
Načtený XML obsahuje odkazy na entity a čtenář nemůže přeložit entity.
Příklady
Následující příklad upraví cenu knihy pomocí 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
Příklad používá následující dva vstupní soubory.
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>
Poznámky
XmlDataDocument
nepodporuje vytváření odkazů na entity. Pokud zdroj dat obsahuje odkazy na entity, musíte vytvořit XmlValidatingReader s vlastností nastavenou EntityHandling na EntityHandling.ExpandEntities (toto je výchozí chování) a předat XmlValidatingReader
metodu Load
. Pokud nepoužíváte XmlValidatingReader
, metoda Load
vyvolá výjimku.
Metoda Load
vždy zachovává významné prázdné místo. Vlastnost PreserveWhitespace určuje, zda je zachováno prázdné místo. Výchozí hodnota je false
, prázdné místo není zachováno.
Pokud je čtenář v počátečním stavu (tj. ReadState=ReadState.Initial), Load
využívá celý obsah čtenáře a sestaví DOM z toho, co najde.
Pokud je čtečka již umístěna na určitém uzlu v hloubkové "n", tato metoda načte tento uzel a všechny následné nasouzené až do koncové značky, která zavře hloubku "n". To má následující výsledky.
Pokud aktuální uzel a jeho následující sourozenci vypadají podobně jako následující:
<!--comment--><element1>one</element1><element2>two</element2>
Load
vyvolá výjimku, protože dokument nemůže mít dva prvky na kořenové úrovni. Pokud aktuální uzel a jeho následující sourozenci vypadají podobně jako následující:
<!--comment--><?process
instruction?><!--comment--></endtag>
Load
bude úspěšná; Ale budete mít neúplný strom DOM, protože neexistuje žádný prvek na úrovni kořene. Před uložením dokumentu musíte přidat prvek na úrovni kořene; Save jinak metoda vyvolá výjimku.
Pokud je čtečka umístěná na uzlu typu list, který je neplatný pro kořenovou úroveň dokumentu (například prázdný znak nebo uzel atributu), čtenář bude dál číst, dokud není umístěn na uzlu, který se dá použít pro kořen. Dokument se začne načítat v tomto okamžiku.