2009-11-02 13 views
14

Vedo che è possibile creare file xml utilizzando XmlDocument o XmlWriter.XmlDocument vs XmlWriter

Ci sono dei vantaggi nell'usare un metodo rispetto a un altro?

risposta

17

XmlWriter esegue la scrittura in streaming di dati XML. XmlDocument crea dati XML come un modello di oggetto in memoria.

Si utilizza XmlWriter quando è necessario produrre documenti XML senza utilizzare memoria proporzionale alle dimensioni del documento. Si utilizza XmlDocument quando è necessario elaborare XML in memoria: quando si analizza un documento XML esistente in un modello a oggetti o si creano elementi in posizioni arbitrarie o si aggiorna un documento esistente o si utilizza XPath per cercare un documento . (In realtà, per quest'ultimo caso devi usare XPathDocument, ma in ogni caso si non si poteva usare un XmlWriter, dal momento che è di sola scrittura.)

Naturalmente è possibile scrivere dati XML in un flusso utilizzando uno XmlDocument. Ma in realtà stai usando un XmlWriter per farlo, perché questo è ciò che XmlDocument utilizza internamente.

+0

Come nel 99% dei casi 'XmlWriter' verrebbe utilizzato con un tipo di supporto' MemoryStream', la differenza nella dimensione della memoria sarebbe trascurabile. Tuttavia, ciò che è importante è che 'XmlDocument' possa essere convalidato rispetto allo schema. – ajeh

3

Dipenderà dal tuo scenario. XmlDocument carica l'intero documento in memoria, mentre XmlWriter utilizza uno stream, quindi è più adatto quando si lavora con documenti XML di grandi dimensioni. D'altra parte XmlDocument potrebbe essere più facile da usare.

0

negozi XmlDocument foro di dati nella memoria, quindi è lento quando il file è grande (500 MB o più), ma facile da usare XmlWriter scrive per lo streaming direttamente

3

Se si supportano .Net Framework 3.5 vi consiglio invece di lavorare con XDocument e XElement. È un'API molto più semplice e intuitiva