Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

C# Desesializar xml

Iniciado por fernando, Marzo 29, 2017, 05:30:27 PM

Tema anterior - Siguiente tema


      
   

         

            
votar en contrahttp://es.stackoverflow.com/questions/58849/c-deserializar-xml-para-leer-y-recoger-datos#" style='margin: 0px auto 2px; padding: 0px; border: 0px; font-size: 1px; color: rgb(0, 119, 204); text-decoration: none; cursor: pointer; background-image: url("img/sprites.svg?v=5ab37de095d9"), none; background-size: initial; background-repeat: no-repeat; overflow: hidden; display: block; text-indent: -9999em; width: 40px; height: 30px; background-position: 0px -120px;' title="Click to mark as favorite question (click again to undo)" rel="external nofollow">favorito
            

                
            
         
      

         

            

               
                  Buenas. Tengo una aplicación en Unity y tengo una clase donde asigno a unos botones un texto. Quiero que los textos de los botones se cojan de un archivo xml. Tengo hecho esto para leer el XML pero no se como sacar los datos y llevarlos a la otra clase. Este es mi codigo :
               
               

Public void leerXml()
{
   datos libros = null;
   string path= @"C:\libros.xml"
   XmlSerializer serializer = nwe xmlSerializer(typeof(datos));
   StreamReader reader = new StreamReader(path);
   libros = (datos)serializer.deserialize(reader):
   reader.close
}

               
                  Creo que eso lo tengo bien y me lee los datos del xml,pero como puedo conseguirlos y llevarlos a otra clase para asignar a los botones los textos del xml?
               
            
         
      

Armar un XML para luego tratarlo como una cadena de letras es algo absurdo.
 
Busca sobre XmlNode, Child, Root, Parent y toda la jerarquía y trata de entender cómo funciona.
 
https://msdn.microsoft.com/es-es/library/system.xml(v=vs.110).aspx
https://msdn.microsoft.com/es-es/library/system.xml.xmldocument(v=vs.110).aspx
 
 

y que campos tiene "libros"? no podes acceder a cada uno? por ej cuando serializas una clase de datos con el "xmlRoot" todos los miembros de ella se guardan en tu xml en su forma correspondiente, cuando la deserializas correctamente deberias podes acceder a cada uno. Por ej aca tengo un xml viejo:
 

public void LoadDataXML(int profile)
{
   string path = Application.dataPath + "/ProfileData/" + "profile" + profile.ToString() + ".xml";
   XmlSerializer serializer = new XmlSerializer( typeof(DataXML));
   FileStream fileStream = new FileStream( path , FileMode.Open );
   dataXML = (DataXML)serializer.Deserialize (fileStream);
   fileStream.Close();
}

 
luego , en cualquier parte de la clase (o referenciandola en otras clases) puedo hacer:
 

dato1 = dataXML.dato1;

 
 


<libro>
  <libroEjemplo>
       <libro1>
          <nombre>Alfredo Reino</nombre>
          <email>alf@ibium.com</email>
       </libro1>
  </libroEjemplo>
  <libroEjemplo>
       <libro2>
          <nombre>Alfredo Reino</nombre>
          <email>alf@ibium.com</email>
       </libro2>
  </libroEjemplo>

 
Este es mi Xml. Necesito que los datos de nombre y email los pueda guardar en variables o algo para asignarlos a los botones que estan en otro .cs

Etiquetas: