Domanda

Ho fatto il parsing XML prima, ma mai in modo massiccio. Se sto lavorando con molti documenti simili a questo formato:

<?xml version="1.0" ?>
<items comment="something...">
  <uid>6523453</uid>
  <uid>94593453</uid>
</items>

Qual è il modo più veloce per analizzare questi documenti?
1) DOM XML
2) Serialize XML - Reidratare ad un oggetto .NET
3) Qualche altro metodo

Aggiorna
Ho dimenticato di dire che non ci sarebbero circa 8000 elementi uid in media.

È stato utile?

Soluzione

XmlReader è sicuramente di essere il metodo più rapido, anche se dovrete fare tutto il parsing manualmente naturalmente. Si legge direttamente dal flusso, senza cache nulla, anche se non è troppo comodo da usare rispetto al DOM.

Confrontando i due hai suggerito: la serializzazione deve essere più veloce che utilizzare il DOM dal momento che (credo) che non memorizza nella cache l'intero albero all'interno della memoria - è anche ha certamente un più facile da usare l'interfaccia, se si sta puntando specificamente per eseguire la serializzazione.

Altri suggerimenti

Direi che serializzazione XML sarebbe il meglio dei due mondi. È possibile ottenere la facilità d'uso, così come una buona velocità. V'è una certa ulteriore sovraccarico con serializzazione XML ... se si è utilizzato XmlReader manualmente, avrete almeno replicare, se non superare, il carico di sul proprio come si usa quel lettore di ricreare il vostro oggetto grafico.

A seconda di ciò che è necessario fare con i dati XmlReader citato da @Noldorin è la soluzione migliore per l'elaborazione stile streaming. Se avete bisogno di più ad-hoc accesso stile ai dati utilizzando XPath e il XPathDocument sarà molto più veloce rispetto al documento XML grezzo.

http://msdn.microsoft.com/en-us/library /eh3exdc4.aspx

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top