C sharp - Generación de código XML desde C#

 
Vista:

Generación de código XML desde C#

Publicado por kalixe985 (26 intervenciones) el 16/12/2007 02:52:58
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:

[CODE]<?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>[/CODE]
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!!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Generación de código XML desde C#

Publicado por kalixe985 (26 intervenciones) el 17/12/2007 23:27:28
Hola de nuevo!!!
Resulta que el código XML que debo generar debe cumplir un schema existente. En este punto necesitaria dos cosas:[LIST]
[*]Que se compruebe si el codigo que voy generando cumple ese schema existente. ¿Cómo podría comprobarlo?
[*]Que los elementos que inserte sean de la forma <Elemento atributo1="valor" atributo2="valor" /> y no de la forma <Elemento atributo1="valor" atributo2="valor"></Elemento> ¿Hay alguna función que inserte un elemento con la anterior forma o algún método que me permita crear un elemento a partir de un string, en el que habría una cadena con un elemento con la forma descrita anteriormente?
[/LIST]A ver si me pueden ayudar.
Gracias y salu2!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Generación de código XML desde C#

Publicado por fgfg (1 intervención) el 06/02/2008 18:47:57
tonto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar