Hola!!!
Resulta que estoy haciendo una aplicación en C# (Windows Forms) que tiene que generar varios archivos con código XML. Por ejemplo, uno de los archivos generados podría tener la misma estructura que el siguiente:
Código:
<?xml version="1.0" encoding="utf-8"?>
<Application xmlns="http://www.dvdforum.org/2005/HDDVDVideo/Manifest">
<Region x="0" y="0" width="1920" height="1080" />
<Script src="file:///dvddisc/ADV_OBJ/main.js" />
<Markup src="file:///dvddisc/ADV_OBJ/main.xmu" />
<Resource src="file:///dvddisc/ADV_OBJ/main.js" />
<Resource src="file:///dvddisc/ADV_OBJ/main.xmu" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter1____e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter1_f__e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter1of__e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter2____e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter2_f__e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter2of__e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter3____e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter3_f__e.png" />
<Resource src="file:///dvddisc/ADV_OBJ/chapter3of__e.png" />
</Application>
A medida que avanzo, poco a poco voy conociendo las clases XML de C# y familiarizándome con ellas.
Mi aplicación tiene que funcionar como proyectos, de tal forma que el usuario pueda guardar el código que ha generado y la siguiente vez que abra la aplicación, se cargue el último código XML que el usuario creó, para poder seguir modificándolo, añadiéndole o quitándole elementos.
En lo que se refiere a generar la líneas de código XML en un fichero, lo sé hacer, con la clase XmlTextWriter. Lo que necesito es saber si
hay alguna forma de ir generando el código, por ejemplo en un stream, y cuando el usuario Guarde los cambios, entonces ese código generado se escriba persistentemente en un archivo XML. Con esto lo que quiero conseguir es que sólo se escriba el código generado en el archivo XML cuando el usuario guarde, y no antes. Creo que esta forma es mejor, ya que si fuera leyendo y escribiendo el archivo XML, a medida que se fuera modificando, sería menos eficiente (lecturas y escrituras continuas de un mismo fichero XML) y menos práctico. ¿Qué opináis? ¿Se podría hacer de otra manera? Acepto consejos. También he pensado utilizar archivos temporales XML. ¿Me lo recomendáis? ¿Cómo me aconsejaríais que hiciera lo que quiero conseguir?
Por otra parte, ¿Hay algún método y/o clase que permita buscar elementos en un archivo XML, modificarlos, borrarlos o crear nuevos, indistintamente de la línea en que se encuentren? Me explico, por ejemplo, en el ejemplo de código que he puesto, me interesaría poder borrar un elemento Resource, según su atributo src, por ejemplo, o modificar este elemento Resource o crear uno nuevo, etc...; me interesaría, por ejemplo, modificar, eliminar o volver a crear un elemento Region también...
Querría hacer lo anterior con todos los demás elementos (Region, Script, Markup, etc...): poderlos crear nuevos, borrarlos o modificarlos. ¿Cómo podría hacer esto?
Perdón por todas la dudas que planteo y por mi ignorancia. De antemano agradezco cualquier enlace a tutoriales, etc de XML con C#.
A ver si alguien me puede ayudar, gracias y salu2!!!!!