Modificar el valor de un elemento en XML

03/10/2009 - 23:11 por Alberto | Informe spam
Si tengo en un fichero xml
...
<color>Blue</color>
...

¿Hay algún modo de modificar el valor del elemento anterior?
El único modo que veo ahora es borrar el fichero xml antiguo, volver a
generarlo con los cambios y grabarlo.

Gracias por la ayuda.
 

Leer las respuestas

#1 Alberto Poblacion
04/10/2009 - 00:34 | Informe spam
"Alberto" wrote in message
news:
Si tengo en un fichero xml
...
<color>Blue</color>
...

¿Hay algún modo de modificar el valor del elemento anterior?
El único modo que veo ahora es borrar el fichero xml antiguo, volver a
generarlo con los cambios y grabarlo.



Sí, normalmente lo que se hace es leer el fichero entero y volverlo a
grabar. En principio, podrías ahorrar algo de trabajo abriendo el archivo en
modo binario con un FileStream, avanzando hasta la posición donde está el
elemento que quieres cambiar, y sustituyendo los caracteres. Pero si la
longitud del nuevo texto es distinta de la del antiguo, a continuación
tendrás que regrabar todo el resto del archivo "corriendo" los caracteres
para amoldarte a la nueva longitud del texto modificado. Por lo tanto, al
final acabarías grabando de todas formas parte del archivo (lo que quede por
debajo del elemento modificado). En resumidas cuentas, para ahorrar tan solo
una parte del esfuerzo de grabación, incurres en complicar seriamente el
proceso de modificación del archivo. Por eso no suele hacerse, y se recurre
a cargar el archivo en memoria, hacer el cambio, y volverlo a grabar por
completo.

Preguntas similares