Freigeben über


XmlDataDocument.Load Methode

Definition

Lädt das XmlDataDocument mithilfe der angegebenen Datenquelle und synchronisiert das DataSet mit den geladenen Daten.

Überlädt

Load(Stream)

Lädt das XmlDataDocument aus dem angegebenen Stream.

Load(TextReader)

Lädt das XmlDataDocument aus dem angegebenen TextReader.

Load(String)

Lädt das XmlDataDocument mit der angegebenen URL.

Load(XmlReader)

Lädt das XmlDataDocument aus dem angegebenen XmlReader.

Hinweise

Hinweis

Um die XML-Daten relational anzuzeigen, müssen Sie zunächst ein Schema angeben, das für die Datenzuordnung verwendet werden soll. Dies kann entweder durch Aufrufen der Methode oder durch Das Erstellen der ReadXmlSchema Tabellen und Spalten innerhalb des DataSet manuellen Vorgangs erfolgen. Dieser Schritt muss ausgeführt werden, bevor Sie anrufen Load.

XmlDataDocument Unterstützt das Erstellen von Entitätsverweisen nicht. Wenn die Daten Entitätsbezüge enthalten, löst die Load Methode alle Entitätsbezüge auf und erweitert sie. Wenn Sie jedoch die Überladung verwenden, die Load als XmlReader Argument verwendet wird, müssen Sie eine XmlReader Angabe angeben, die Entitäten auflösen kann.

Load(Stream)

Lädt das XmlDataDocument aus dem angegebenen Stream.

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)

Parameter

inStream
Stream

Der Stream, der das zu ladende XML-Dokument enthält.

Hinweise

XmlDataDocument Unterstützt das Erstellen von Entitätsverweisen nicht. Wenn die Daten Entitätsbezüge enthalten, löst die Load Methode alle Entitätsbezüge auf und erweitert sie.

Hinweis

Um die XML-Daten relational anzuzeigen, müssen Sie zunächst ein Schema angeben, das für die Datenzuordnung verwendet werden soll. Dies kann entweder durch Aufrufen der Methode oder durch Das Erstellen der ReadXmlSchema Tabellen und Spalten innerhalb des DataSet manuellen Vorgangs erfolgen. Dieser Schritt muss ausgeführt werden, bevor Sie anrufen Load.

Gilt für

Load(TextReader)

Lädt das XmlDataDocument aus dem angegebenen TextReader.

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)

Parameter

txtReader
TextReader

Der zum Übertragen von XML-Daten in das Dokument verwendete TextReader.

Hinweise

XmlDataDocument Unterstützt das Erstellen von Entitätsverweisen nicht. Wenn die Daten Entitätsverweise enthalten, wird die Load Methode aufgelöst und erweitert alle Entitätsverweise.

Hinweis

Um die XML-Daten relational anzuzeigen, müssen Sie zunächst ein Schema angeben, das für die Datenzuordnung verwendet werden soll. Dies kann entweder durch Aufrufen der ReadXmlSchema Methode oder durch manuelles Erstellen der Tabellen und Spalten erfolgen DataSet . Dieser Schritt muss vor dem Aufrufen Loaderfolgen.

Gilt für

Load(String)

Lädt das XmlDataDocument mit der angegebenen 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)

Parameter

filename
String

Die URL der Datei, die das zu ladende XML-Dokument enthält.

Hinweise

XmlDataDocument unterstützt das Erstellen von Entitätsverweise nicht. Wenn die Daten Entitätsverweise enthalten, wird die Load Methode aufgelöst und erweitert alle Entitätsverweise.

Hinweis

Um die XML-Daten relational anzuzeigen, müssen Sie zunächst ein Schema angeben, das für die Datenzuordnung verwendet werden soll. Dies kann entweder durch Aufrufen der ReadXmlSchema Methode oder durch manuelles Erstellen der Tabellen und Spalten erfolgen DataSet . Dieser Schritt muss vor dem Aufrufen Loaderfolgen.

Gilt für

Load(XmlReader)

Lädt das XmlDataDocument aus dem angegebenen XmlReader.

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)

Parameter

reader
XmlReader

Der XmlReader, der das zu ladende XML-Dokument enthält.

Ausnahmen

Die geladenen XML-Daten enthalten Entitätsverweise, und der Reader kann Entitäten nicht auflösen.

Beispiele

Im folgenden Beispiel wird der Preis eines Buchs mithilfe der DataSet Methoden geändert.

#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

Im Beispiel werden die folgenden beiden Eingabedateien verwendet.

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>

Hinweise

XmlDataDocument unterstützt das Erstellen von Entitätsverweise nicht. Wenn die Datenquelle Entitätsverweise enthält, müssen Sie eine XmlValidatingReader mit der EntityHandling Eigenschaft auf EntityHandling.ExpandEntities (dies ist das Standardverhalten) erstellen und die XmlValidatingReader Load Methode übergeben. Wenn Sie keine Verwendung verwenden XmlValidatingReader, löst die Load Methode eine Ausnahme aus.

Die Load Methode behält immer einen erheblichen Leerraum bei. Die PreserveWhitespace Eigenschaft bestimmt, ob Leerzeichen beibehalten werden. Der Standardwert ist false, Leerzeichen bleiben nicht erhalten.

Wenn sich der Leser im Anfangszustand befindet (d. h. ReadState=ReadState.Initial), Load verwendet den gesamten Inhalt des Reader und erstellt das DOM aus dem gefundenen Element.

Wenn der Leser bereits auf einem Knoten in der Tiefe "n" positioniert ist, lädt diese Methode diesen Knoten und alle nachfolgenden gleichgeordneten Elemente bis zum Endtag, das die Tiefe "n" schließt. Dies hat die folgenden Ergebnisse.

Wenn der aktuelle Knoten und die folgenden gleichgeordneten Knoten wie folgt aussehen:

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

Load löst eine Ausnahme aus, da ein Dokument nicht über zwei Elemente auf Stammebene verfügen kann. Wenn der aktuelle Knoten und die folgenden gleichgeordneten Knoten wie folgt aussehen:

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

Load wird erfolgreich sein; Sie verfügen jedoch über eine unvollständige DOM-Struktur, da kein Element auf Stammebene vorhanden ist. Sie müssen ein Element auf Stammebene hinzufügen, bevor Sie das Dokument speichern. andernfalls löst die Save Methode eine Ausnahme aus.

Wenn sich der Reader auf einem Endknoten befindet, der für die Stammebene eines Dokuments ungültig ist (z. B. ein Leerraum- oder ein Attributknoten), setzt der Reader den Lesevorgang solange fort, bis er sich auf einem Knoten befindet, der als Stamm verwendet werden kann. Das Dokument beginnt an dieser Stelle mit dem Laden.

Gilt für