Quiero hacer un programa en c# que trabaje con un XML de ~40Mb.
Questions:
- ¿Hay diferencias sensibles entre .NET 1.1 (VS2003) vs .NET 2.0 (VS2005) en este aspecto (XML)?
- ¿Algun tutorial para aprender a pasearme por el XML con lo que hay en el namespace System.XML?
Zankius
Prueba aqui, esta en basic, pero al final es lo mismo que en c-sharp http://samples.gotdotnet.com/quickstart/howto/doc/Xml/XmlNodeReader.aspx
Con .Net puedes hacer consultas a tu xml con el Xpath ( aqui un tutorial: http://www.w3schools.com/xpath/default.asp ).
Saludos.
Hola,
creo que no hay cambios muy importantes de 1.1 a 2.0 en System.XML (lo mismo me cuelo).
Para trabajar con XML, .NET te da dos alternativas:
- usar la clase XMLDocument y trabajar siguiendo el modelo DOM (cualquier tuto del W3C que te cuente DOM te vale para usar esto).
- usar las clases XMLTextReader y XMLTextWriter. Son clases que trabajan de forma secuencial, y son bastannte sencillas.
Cualquiera de las dos formas te vale. Un saludo!
Vicente
Gracias por las respuestas, en especial por lo del XPath que no conocia.
Cita de: "AbelNightroad"Quiero hacer un programa en c# que trabaje con un XML de ~40Mb.
Questions:
- ¿Hay diferencias sensibles entre .NET 1.1 (VS2003) vs .NET 2.0 (VS2005) en este aspecto (XML)?
- ¿Algun tutorial para aprender a pasearme por el XML con lo que hay en el namespace System.XML?
Zankius
El XML no es optimo para manejer archivos de ese tamaño.
.
Cita de: "escobar"
El XML no es optimo para manejer archivos de ese tamaño.
No hace falta que lo jures. :lol:
No sé como irá XML en .net... pero para ficheros de ese tamaño, lo mejor es usar SAX y no DOM.
Igual si buscas acceso a XML con SAX en .net encuentres algo.
creo que si usas XMLs de 40 megas es que tienes algun error en el diseño de tu sistema, porque como bien han dicho los XMLs no se crearon para eso.
El XML no es mio (ver posts anteriores). Yo solo lo leo. De todos modos, este asunto ya lo tengo zanjado. Actualmente el XML lo cargo a cachitos en memoria (~100Mb), y realizo busquedas "a mano". Y estoy contento porque va francamente bien de velocidad.