CLR: .Net / Mono / Boo / Otros CLR > C#
Xml
(1/1)
darko:
Otra duda que tengo es despues de recoger los datos de distintos textbox y tenerlos almacenados en variables, como a partir de esos datos puedo generar un archivo xml.
De nuevo gracias.
JuanK:
puedes utilizar el espacio de nombres System.Xml..
hay muchas clases pero las mas basicas son
XmlReader
XmlWriter
darko:
Voy a ser un poco más concreto a ver si me podeis ayudar.
Tengo una clase Usuario y una clase Banco.
Mediante textbox leo elementos, que son nif, nombre, apelido, direccion y telefono para el usuario y nif y cuenta para el Banco, ya tengo controlados todo tipo de validaciones y demas.
Me he creado las dos tablas en acces que se relacionan mediante el campo nif.
Con eso tengo el esquema .xsd creado.
Con lo que tengo dos clases en el que cada objeto de Usuario representa un usuario con su nombre, apellido... y en el que cada objeto de Cliente representa un cliente con un nif y un numero de cuenta.
Ahora lo que quiero es añadir los datos al .xml cada vez que introduzca un nuevo objeto
He estado mirando lo que me pusiste de xmlwriter y xmlreader pero no entiendo como se lo paso al .xml
Es la primera vez que trabajo con xml, por lo que si pudieran ser claros explicandose se lo agradeceria
Gracias.
JuanK:
pues yono te entendi nada del .xsd ni nada de esas cosas...
pero lo cierto es que XMLREADER y XMLWRITER sirven para leer y escribir XML y que esta forma de escritura no guarda xml en cache.. pero no se que quiere decir eso..
este es un ejemplo el cual es un fragmento de un pograma que hice... anexo programa .. este programa garda, crea y lee infromacion de archivos .xml..
el rpograma no hace nada, solo lo hice para aprender XML en C#.
--- Código: Text --- private void btXMLWrite_Click(object sender, System.EventArgs e) { try { xw = new XmlTextWriter(tbFile.Text, new System.Text.UTF8Encoding(false)); xw.Formatting = Formatting.Indented; xw.WriteStartElement("Configuracion"); xw.WriteAttributeString("Game","FMC"); SaveVideo(); SaveAudio(); xw.WriteEndElement(); xw.Close(); } catch(XmlException ex) { MessageBox.Show(ex.ToString(),"Error de Xml"); } catch(System.ArgumentException ea) { MessageBox.Show("El nombre de archivo indicado no es válido."+(char)13+"Error devuelto: "+ea.ToString(),"Error al crear XML"); } finally { xw.Close(); } } private void SaveVideo() { xw.WriteStartElement("Video"); try { xw.WriteElementString("VideoMode",cbVideoMode.SelectedItem.ToString()); } catch(System.NullReferenceException) { xw.WriteElementString("VideoMode","No especificado"); } try { xw.WriteElementString("ColorDepth",XmlConvert.ToString(Int32.Parse(cbColorDepth.SelectedItem.ToString()))); } catch(System.NullReferenceException) { xw.WriteElementString("ColorDepth","No especificado"); } xw.WriteEndElement(); } private void SaveAudio() { xw.WriteStartElement("Audio"); try { xw.WriteElementString("SoundMode",cbSndMode.SelectedItem.ToString()); } catch(System.NullReferenceException) { xw.WriteElementString("SoundMode","No especificado"); } try { xw.WriteElementString("SoundVol",XmlConvert.ToString(tbVolumen.Value)); } catch(System.NullReferenceException) { xw.WriteElementString("SoundVol","No especificado"); } xw.WriteEndElement(); } private void btXMLRead_Click(object sender, System.EventArgs e) { try { xr = new XmlTextReader(tbFile.Text); if(xr.Read()==true) { if(xr.NodeType==XmlNodeType.Element && xr.Name == "Configuracion") { xr.MoveToFirstAttribute(); if(xr.Name == "Game" && xr.Value == "FMC") { while(xr.Read()) { if(xr.NodeType == XmlNodeType.Element && (xr.Name == "Video" || xr.Name == "Audio")) { if(xr.Name == "Video") { LoadVideo(); continue; } else { LoadAudio(); continue; } break; } } } } } xr.Close(); } catch(Exception ex) { MessageBox.Show("El nombre de archivo indicado no es válido."+(char)13+"Error devuelto: "+ex.ToString(),"Error al cargar XML"); } finally { xr.Close(); } } private void LoadVideo() { String str; byte c =0; while(xr.Read()) { if(xr.NodeType == XmlNodeType.Element) { switch(xr.Name) { case "VideoMode": str = xr.ReadString(); if(str == "FullScreen" || str == "Windowed") cbVideoMode.SelectedItem = str; c++; break; case "ColorDepth": str = xr.ReadString(); if(str == "24" || str == "32" || str == "16") cbColorDepth.SelectedItem = XmlConvert.ToInt32(str).ToString(); c++; break; } } if(c==2) break; } } private void LoadAudio() { String str; byte v=0, c=0; while(xr.Read()) { if(xr.NodeType == XmlNodeType.Element) { switch(xr.Name) { case "SoundMode": str = xr.ReadString(); if(str == "Stereo" || str == "MonoAural" || str == "Surround") cbSndMode.SelectedItem = str; c++; break; case "SoundVol": v =(byte) XmlConvert.ToInt32(xr.ReadString()); if(v >= 0 && v <= 255) { tbVolumen.Value =(int) v; lbVolIndicator.Text = v.ToString(); } c++; break; } } if(c==2) break; } }
darko:
Acabo de leer el post, muchas gracias, voy a ponerme ahora mismo a ver si consigo sacarlo. De nuevo gracias
Navegación
Ir a la versión completa