• Martes 16 de Abril de 2024, 19:33

Autor Tema:  Xml  (Leído 2394 veces)

darko

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Xml
« en: Viernes 14 de Mayo de 2004, 11:23 »
0
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

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Xml
« Respuesta #1 en: Viernes 14 de Mayo de 2004, 15:48 »
0
puedes utilizar el espacio de nombres System.Xml..
hay muchas clases pero las mas basicas son

XmlReader
XmlWriter
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

darko

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Xml
« Respuesta #2 en: Viernes 14 de Mayo de 2004, 16:59 »
0
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

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Xml
« Respuesta #3 en: Viernes 14 de Mayo de 2004, 17:24 »
0
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
  1.  
  2. private void btXMLWrite_Click(object sender, System.EventArgs e)
  3.     {
  4.       try
  5.       {
  6.         xw = new XmlTextWriter(tbFile.Text, new System.Text.UTF8Encoding(false));
  7.         xw.Formatting = Formatting.Indented;
  8.         xw.WriteStartElement("Configuracion");
  9.         xw.WriteAttributeString("Game","FMC");
  10.         SaveVideo();
  11.         SaveAudio();
  12.         xw.WriteEndElement();
  13.         xw.Close();
  14.       }
  15.       catch(XmlException ex)
  16.       {
  17.         MessageBox.Show(ex.ToString(),"Error de Xml");
  18.       }
  19.       catch(System.ArgumentException ea)
  20.       {
  21.         MessageBox.Show("El nombre de archivo indicado no es válido."+(char)13+"Error devuelto: "+ea.ToString(),"Error al crear XML");
  22.       }
  23.       finally
  24.       {
  25.         xw.Close();
  26.       }
  27.     }
  28.  
  29.     private void SaveVideo()
  30.     {
  31.       xw.WriteStartElement("Video");
  32.       try
  33.       {
  34.         xw.WriteElementString("VideoMode",cbVideoMode.SelectedItem.ToString());
  35.       }
  36.       catch(System.NullReferenceException)
  37.       {
  38.         xw.WriteElementString("VideoMode","No especificado");
  39.       }
  40.          
  41.       try
  42.       {
  43.         xw.WriteElementString("ColorDepth",XmlConvert.ToString(Int32.Parse(cbColorDepth.SelectedItem.ToString())));
  44.       }
  45.       catch(System.NullReferenceException)
  46.       {
  47.         xw.WriteElementString("ColorDepth","No especificado");
  48.       }
  49.       xw.WriteEndElement();
  50.     }
  51.  
  52.     private void SaveAudio()
  53.     {
  54.       xw.WriteStartElement("Audio");
  55.       try
  56.       {
  57.         xw.WriteElementString("SoundMode",cbSndMode.SelectedItem.ToString());
  58.       }
  59.       catch(System.NullReferenceException)
  60.       {
  61.         xw.WriteElementString("SoundMode","No especificado");
  62.       }
  63.          
  64.       try
  65.       {
  66.         xw.WriteElementString("SoundVol",XmlConvert.ToString(tbVolumen.Value));
  67.       }
  68.       catch(System.NullReferenceException)
  69.       {
  70.         xw.WriteElementString("SoundVol","No especificado");
  71.       }
  72.       xw.WriteEndElement();
  73.     }
  74.  
  75.  
  76.     private void btXMLRead_Click(object sender, System.EventArgs e)
  77.     {
  78.       try
  79.       {
  80.         xr = new XmlTextReader(tbFile.Text);
  81.         if(xr.Read()==true)
  82.         {
  83.           if(xr.NodeType==XmlNodeType.Element && xr.Name == "Configuracion")
  84.           {
  85.             xr.MoveToFirstAttribute();
  86.             if(xr.Name == "Game" && xr.Value == "FMC")
  87.             {
  88.               while(xr.Read())
  89.               {
  90.                 if(xr.NodeType == XmlNodeType.Element &&
  91.                   (xr.Name == "Video" || xr.Name == "Audio"))
  92.                 {
  93.                   if(xr.Name == "Video")
  94.                   {
  95.                     LoadVideo();
  96.                     continue;
  97.                   }
  98.                   else
  99.                   {
  100.                     LoadAudio();
  101.                     continue;
  102.                   }
  103.                   break;
  104.                 }
  105.               }
  106.             }
  107.           }
  108.         }
  109.         xr.Close();
  110.       }
  111.       catch(Exception ex)
  112.       {
  113.         MessageBox.Show("El nombre de archivo indicado no es válido."+(char)13+"Error devuelto: "+ex.ToString(),"Error al cargar XML");
  114.       }
  115.       finally
  116.       {
  117.         xr.Close();
  118.       }
  119.     }
  120.  
  121.     private void LoadVideo()
  122.     {
  123.       String str;
  124.       byte c =0;
  125.       while(xr.Read())
  126.       {
  127.         if(xr.NodeType == XmlNodeType.Element)
  128.         {
  129.           switch(xr.Name)
  130.           {
  131.             case "VideoMode":
  132.               str = xr.ReadString();
  133.               if(str == "FullScreen" || str == "Windowed")
  134.                 cbVideoMode.SelectedItem = str;
  135.               c++;
  136.             break;
  137.             case "ColorDepth":
  138.               str = xr.ReadString();
  139.               if(str == "24" || str == "32" || str == "16")
  140.                 cbColorDepth.SelectedItem = XmlConvert.ToInt32(str).ToString();
  141.               c++;
  142.             break;
  143.           }
  144.         }
  145.         if(c==2)
  146.           break;
  147.       }
  148.     }
  149.     private void LoadAudio()
  150.     {
  151.       String str;
  152.       byte v=0, c=0;
  153.  
  154.       while(xr.Read())
  155.       {
  156.         if(xr.NodeType == XmlNodeType.Element)
  157.         {
  158.           switch(xr.Name)
  159.           {
  160.             case "SoundMode":
  161.               str = xr.ReadString();
  162.               if(str == "Stereo" || str == "MonoAural" || str == "Surround")
  163.                 cbSndMode.SelectedItem = str;
  164.               c++;
  165.               break;
  166.             case "SoundVol":
  167.               v =(byte) XmlConvert.ToInt32(xr.ReadString());
  168.               if(v >= 0 && v <= 255)
  169.               {
  170.                 tbVolumen.Value =(int) v;
  171.                 lbVolIndicator.Text = v.ToString();
  172.               }
  173.               c++;
  174.               break;
  175.           }
  176.         }
  177.         if(c==2)
  178.           break;
  179.       }
  180.     }
  181.  
  182.  
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

darko

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: Xml
« Respuesta #4 en: Sábado 15 de Mayo de 2004, 11:20 »
0
Acabo de leer el post, muchas gracias, voy a ponerme ahora mismo a ver si consigo sacarlo. De nuevo gracias