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?
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?
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.
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.
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
Se si supportano .Net Framework 3.5 vi consiglio invece di lavorare con XDocument e XElement. È un'API molto più semplice e intuitiva
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