Sdílet prostřednictvím


XmlDataDocument.Load Metoda

Definice

XmlDataDocument Načte použití zadaného zdroje dat a synchronizuje je s načtenými datyDataSet.

Přetížení

Load(Stream)

XmlDataDocument Načte ze zadaného datového proudu.

Load(TextReader)

XmlDataDocument Načte ze zadaného TextReadersouboru .

Load(String)

XmlDataDocument Načte pomocí zadané adresy URL.

Load(XmlReader)

XmlDataDocument Načte ze zadaného XmlReadersouboru .

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.

Platí pro