Foros del Web » Programación para mayores de 30 ;) » .NET »

Ayuda con XML Vb.net

Estas en el tema de Ayuda con XML Vb.net en el foro de .NET en Foros del Web. Hola a todos, necesito me echeis una mano con esto ya que no tengo idea como plantealo. Tengo un archivo XML con su estructura, leo ...
  #1 (permalink)  
Antiguo 26/04/2006, 07:13
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 8 meses
Puntos: 0
Ayuda con XML Vb.net

Hola a todos, necesito me echeis una mano con esto ya que no tengo idea como plantealo.
Tengo un archivo XML con su estructura, leo y añado contenido al XML sin problemas, lo unico que a la hora de guardar el archivo XML de nuevo, me añade no solo el contenido del Dataset, sino, que si el XML ya contenia Datos los deja y los duplica.
Es decir, si tengo en el xml:
<DataSetContactos xmlns="http://tempuri.org/DataSetContactos.xsd">
<Contacto>
<Nombre>Luis</Nombre>
<Dirección>España</Dirección>
<Tfno>No Tiene</Tfno>
</Contacto>
</DataSetContactos>

Para guardar lo modificado uso esto:
dsContactos.WriteXml("C:data.xml")

La variable dsContactos la declaro en un Modulo de la siguiente forma:
Public dsContactos As New DataSetContactos
Public dtContactos As DataSetContactos.ContactoDataTable = dsContactos.Contacto
Public crContacto As DataSetContactos.ContactoRow

Al guardarlo me pone esto:
<DataSetContactos xmlns="http://tempuri.org/DataSetContactos.xsd">
<Contacto>
<Nombre>Luis</Nombre>
<Dirección>España</Dirección>
<Tfno>No Tiene</Tfno>
</Contacto>
<Contacto>
<Nombre>Luis</Nombre>
<Dirección>España</Dirección>
<Tfno>No Tiene</Tfno>
</Contacto>
</DataSetContactos>
Lo que yo quiero es que si la aplicación en vez de añadir un nuevo contacto a editado una columna no me añada lo que esta en el Dataset mas lo que tiene el XML sino

<DataSetContactos xmlns="http://tempuri.org/DataSetContactos.xsd">
<Contacto>
<Nombre>Luis</Nombre>
<Dirección>España</Dirección>
<Tfno>No Tiene</Tfno>
</Contacto>
</DataSetContactos>

Como puedo hacer para que no me añada de nuevo lo mismo, sino que edite el XML sin Repetir?

Tengo una aplicación MDI y los XML lo uso como Archivo de los datos del programa, por lo que me gustaria que si tengo dos Ventanas Abiertas cree cada una su XML con sus datos y que conforme se lo indique el porograma edite campos, pero que al guardar no pase lo que me pasa.

Espero me puedan ayudar.
Saludos
  #2 (permalink)  
Antiguo 28/04/2006, 14:01
 
Fecha de Ingreso: abril-2006
Mensajes: 40
Antigüedad: 18 años
Puntos: 0
Ya he trabajado con algo similar y no me ha pasado esto, en si la instrucion
Código:
 dsContactos.WriteXml("C:data.xml")
Sobreescribe el archivo anterior, posiblemente el error este un tu codigo, si puedes postea lo demas de codigo pare ver si es asi, si no para buscar por otro lado el problema.

Saludos!.
  #3 (permalink)  
Antiguo 28/04/2006, 14:11
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 8 meses
Puntos: 0
Al final me he decantado por usar un Dataset y un Dataview, y lo que hago es modificar el Dataset y una vez modificado lo fuardo en xml, y asi no me da el problema, es una pena porque era mas comodo de la otra forma pero bueno.
Saludos y Muchas Gracias por contestarme.
  #4 (permalink)  
Antiguo 16/05/2006, 08:58
Avatar de Thencho  
Fecha de Ingreso: septiembre-2005
Ubicación: Donosti, munduko politena
Mensajes: 83
Antigüedad: 18 años, 7 meses
Puntos: 1
Buenas Taurus

Como guardas el dataset en el XML?

yo utilizo esto:

Public Sub GuardarDatos(ByVal datas As DataSet)
Dim miFS As New FileStream("DatosDvd.xml", FileMode.Open)
Dim XmlW As New XmlTextWriter(miFS, System.Text.Encoding.Unicode)
datas.WriteXml(XmlW)
XmlW.Close()
End Sub

He comprobado que se me modifica el dataset, que modifica la linea o la borra segun le diga. Pero cuando le llamo al procedimiento de arriba, no me da ningun error, pero el XML no me lo modifica.

Gracias.
__________________
Bueno PEÑA
AGUR !!! :adios:
  #5 (permalink)  
Antiguo 16/05/2006, 09:20
 
Fecha de Ingreso: agosto-2003
Mensajes: 398
Antigüedad: 20 años, 8 meses
Puntos: 0
Yo, la verdad es que no me complico tanto, para guardarlo cojo y ytilizo la funcion del dataset writexml y me lo guarda directamente el datset en xml, asi lo que hago es modificar el xml en el dataset y luego escribo el xml.
tal que asi:
Dataset1.WriteXml("nombrexml.xml")
Tambien comentarte que yo utilizo el control dataset que viene en las herramientas(Dataset1).
Si tienes alguna duda, escribe y te ayudare en lo que este en mi mano.
Saludos

Última edición por Taurus427; 16/05/2006 a las 15:00
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:21.