Condividi tramite


XmlDataDocument.Load Metodo

Definizione

Carica XmlDataDocument utilizzando l'origine dati specificata e sincronizza il DataSet con i dati caricati.

Overload

Load(Stream)

Carica XmlDataDocument dal flusso specificato.

Load(TextReader)

Carica XmlDataDocument dall'oggetto TextReader specificato.

Load(String)

Carica XmlDataDocument utilizzando l'URL specificato.

Load(XmlReader)

Carica XmlDataDocument dall'oggetto XmlReader specificato.

Commenti

Nota

Per visualizzare i dati XML in modo relazionale, è prima necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet manualmente. Questo passaggio deve essere eseguito prima di chiamare Load.

XmlDataDocument non supporta la creazione di riferimenti alle entità. Se i dati includono riferimenti alle entità, il Load metodo risolve e espande qualsiasi riferimento alle entità. Tuttavia, se si usa l'overload Load che accetta XmlReader come argomento, è necessario specificare un XmlReader oggetto che può risolvere le entità.

Load(Stream)

Carica XmlDataDocument dal flusso specificato.

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)

Parametri

inStream
Stream

Flusso che contiene il documento XML da caricare.

Commenti

XmlDataDocument non supporta la creazione di riferimenti alle entità. Se i dati includono riferimenti alle entità, il Load metodo risolve e espande qualsiasi riferimento alle entità.

Nota

Per visualizzare i dati XML in modo relazionale, è prima necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet manualmente. Questo passaggio deve essere eseguito prima di chiamare Load.

Si applica a

Load(TextReader)

Carica XmlDataDocument dall'oggetto TextReader specificato.

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)

Parametri

txtReader
TextReader

Oggetto TextReader usato per inserire i dati XML nel documento.

Commenti

XmlDataDocument non supporta la creazione di riferimenti alle entità. Se i dati includono riferimenti all'entità, il Load metodo risolve ed espande tutti i riferimenti alle entità.

Nota

Per visualizzare i dati XML in modo relazionale, è innanzitutto necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet manualmente. Questo passaggio deve essere eseguito prima di chiamare Load.

Si applica a

Load(String)

Carica XmlDataDocument utilizzando l'URL specificato.

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)

Parametri

filename
String

URL del file che contiene il documento XML da caricare.

Commenti

XmlDataDocument non supporta la creazione di riferimenti a entità. Se i dati includono riferimenti all'entità, il Load metodo risolve ed espande tutti i riferimenti alle entità.

Nota

Per visualizzare i dati XML in modo relazionale, è innanzitutto necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet manualmente. Questo passaggio deve essere eseguito prima di chiamare Load.

Si applica a

Load(XmlReader)

Carica XmlDataDocument dall'oggetto XmlReader specificato.

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)

Parametri

reader
XmlReader

XmlReader contenente il documento XML da caricare.

Eccezioni

L'XML che viene caricato contiene riferimenti alle entità e il lettore non è in grado di risolvere le entità.

Esempio

Nell'esempio seguente viene modificato il prezzo di un libro utilizzando i DataSet metodi .

#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

Nell'esempio vengono usati i due file di input seguenti.

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>

Commenti

XmlDataDocument non supporta la creazione di riferimenti a entità. Se l'origine dati contiene riferimenti a entità, è necessario creare un XmlValidatingReader oggetto con la EntityHandling proprietà impostata su EntityHandling.ExpandEntities (comportamento predefinito) e passare al XmlValidatingReader Load metodo . Se non si usa un XmlValidatingReaderoggetto , il Load metodo genera un'eccezione.

Il Load metodo mantiene sempre uno spazio vuoto significativo. La PreserveWhitespace proprietà determina se lo spazio vuoto viene mantenuto. Il valore predefinito è false, lo spazio vuoto non viene mantenuto.

Se il lettore si trova nello stato iniziale , ovvero ReadState=ReadState.Initial, Load utilizza l'intero contenuto del lettore e compila il DOM da ciò che trova.

Se il lettore è già posizionato in un nodo alla profondità "n", questo metodo carica il nodo e tutti i successivi elementi di pari livello fino al tag finale che chiude la profondità "n". I risultati sono i seguenti.

Se il nodo corrente e i relativi elementi di pari livello sono simili ai seguenti:

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

Load genera un'eccezione, perché un documento non può avere due elementi di livello radice. Se il nodo corrente e i relativi elementi di pari livello sono simili ai seguenti:

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

Load avrà esito positivo; Tuttavia, si avrà un albero DOM incompleto, perché non è presente alcun elemento di livello radice. È necessario aggiungere un elemento di livello radice prima di salvare il documento; in caso contrario, il Save metodo genera un'eccezione.

Se il lettore è posizionato su un nodo foglia non valido per il livello radice di un documento, quale un nodo spazio vuoto o attributo, il lettore continuerà a leggere finché non si posizionerà su un nodo che può essere usato per il livello radice. Il caricamento del documento avverrà a partire da questo punto.

Si applica a