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.

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 Alberto
04/10/2009 - 17:03 | Informe spam
Gracias. Así lo haré. Además son archivos relativamente pequeños e imagino
que el proceso será muy rápido.

"Alberto Poblacion"
escribió en el mensaje de noticias
news:
"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.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida