2010-12-14 26 views
0

Je suis nouveau xml, donc s'il vous plaît ne me dérange pas s'il est trop question trivialeConversion hiérarchie d'objets XML aux objets et en ajoutant à une liste

Supposons que j'ai un fichier xml comme ci-dessous

<Person>  
     <Name>John-Jaime-Winston Junior</Name>  
    </Person> 
    <Person>  
     <Name>Steve</Name> 
    </person 

Maintenant, je vais avoir un objet personne, puis-je savoir comment lire le xml et couvrir un tableau d'objets.

Enfin je veux quelque chose comme une liste qui aura tous les objets de la personne.

Je suis incapable d'obtenir le départ comment faire comme je suis nouveau au format XML

class person { 

string _name 

public string Name 
     { 
      get { return _name} 
      set { _name= value; } 
     } 

} 

Merci à l'avance

+0

Est-ce vraiment le XML » re en utilisant? – ChaosPandion

+0

@chaos pandioin, oui j'utilise xml, j'ai juste un exemple de code car je ne peux pas poster tout mon xml, c'est presque le même concept – kobe

+0

FYI: L'exemple n'est pas un XML valide, car le XML nécessite un seul nœud racine. Suggérez de le changer pour quelque chose comme l'exemple de ChaosPandion. – StriplingWarrior

Répondre

1

Je pense que vous voulez quelque chose comme XmlSerializer, vous pouvez sérialiser et désérialiser objets par cela. juste devrait définir les propriétés publiques

[Serializable()] 
public class person 
{ 

     string _name 

     public string Name 
     { 
      get { return _name} 
      set { _name= value; } 
     } 

} 

et de l'utiliser:

 XmlSerializer serializer = new XmlSerializer(typeof(Person)); 
     StreamWriter sw = new StreamWriter("c:\\out.xml"); 
     serializer.Serialize(sw,new Person{Name = "Test"}); 
     sw.Close(); 


     StreamReader sr = new StreamReader("c:\\out.xml"); 
     var outVal = serializer.Deserialize(sr) as Person; 

Mais pour l'analyse syntaxique xml de façon normale, vous pouvez utiliser XDocument ou XPath, ...

+0

c'est ce que je veux, de sorte que je peux écrire une méthode qui peut passer n'importe quel type d'objet – kobe

+0

je cherchais quelque chose comme ci-dessus et une méthode générique qui prend la personne et convertit automatiquement en objet, je l'ai fait en quelque sorte, si vous avez meilleur code s'il vous plaît le poster. – kobe

+0

@gov, vous devriez lire le lien XmlSerializre Je vous ai laissé, la sérialisation de l'objet est un moyen normal de sérialisation, vous pouvez aussi le faire avec soap formater, binaryformatter et DataContractSerializer, par exemple dans les objets remoting ou WCF doivent être sérialisés pour envoyer et dans le récepteur, ils devraient être désérialisés, et cela peut atteindre de cette façon, dire exactement ce que vous voulez, si je sais que je vais vous aider :) –

3

Compte tenu de .NET 3.5 et System.Xml.Linq c'est assez facile.

var q = from e in XElement.Parse(xml).Elements() 
     select new Person() { 
      Name = e.Element("Name").Value 
     }; 

var p = q.ToList(); 

Vous devrez fournir XML valide comme ce qui suit:

<People> 
    <Person> 
     <Name>Jim</Name> 
    </Person> 
    <Person> 
     <Name>Bill</Name> 
    </Person> 
</People>