2011-03-15 41 views
6

Necesito leer archivos XML potencialmente grandes (~ 300mb) y editar algunos de los nodos. Necesito básicamente:La forma más rápida/mejor de leer XML

  • Leer el XML desde el principio
  • Cada vez que encuentro un nodo llamado Multiob
  • añadir un texto a lo

Cuál es la mejor manera de abordar esto en C# ? ¿Qué clases de XML debo usar para buscar y editar los nodos que necesito cambiar?

TIA

Respuesta

4

ETV-XML es el único análisis XML lib que admite una característica llamada actualización incremental. También es eficiente y eficiente en la memoria. Pero requiere que lo descargue como una lib de terceros.

+0

Impresionante: esto definitivamente es algo que voy a ver. ¡Gracias! –

+0

Asegúrese de indicar que este es su propio producto en sus respuestas, no sea que se tomen como spam. – ArtOfCode

3

Desde mi experiencia de transformar algunas muy grandes (2 GB +) archivos XML (no pregunte!) Encontré XSL transforma a ser el más rápido - Los motores implicados están fuertemente optimizado para este tipo de tareas, comparar a cualquier bucle manual, etc., puede probar.

+0

Sabes que creo que tienes razón. Aunque XSLT puede ser intimidante para algunas personas. – ChaosPandion

+2

Comentario justo, aunque la mayoría de las transformaciones son relativamente simples, y siempre puedes publicar una pregunta en SO! –

+0

¿Ahora no es esa una idea loca? – ChaosPandion

2

Si se trata de una operación bastante simple similar a buscar y reemplazar, puede intentar tratarlo como un archivo de texto normal en lugar de un documento xml. Me imagino que podría ser más rápido que todo el análisis xml.

3

puede usar Linq-to-XML. en resumen, lea con XDocument, analice y agregue datos con Linq. Este no será el código más rápido, pero probablemente será el más rápido de escribir.

Si tiene restricciones de memoria, es probable que tenga que analizar de forma manual (es decir, la carga sólo una parte de ella en la memoria, proceso que parte, reemplazarlo en el archivo)

Cuestiones relacionadas