Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?xml version="1.0" encoding="utf-8"?> <!--Un petit commentaire tout au début pour la forme ;-)--> <Racine> <Balise1> <Balise2> <ListePersonnes> <Personne> <Nom Prenom="Alain">Dit</Nom> <DateNaisance>1990-06-06T00:00:00</DateNaisance> </Personne> <Personne> <Nom Prenom="Jean">Sort</Nom> <DateNaisance>2000-01-01T00:00:00</DateNaisance> </Personne> </ListePersonnes> </Balise2> </Balise1> </Racine>
Public Class Personne Public Sub New() Enfants = New List(Of Personne)() End Sub Public Property Nom() As String Public Property Prenom() As String Public Property Naissance() As DateTime Public Property Enfants() As List(Of Personne) Public Shared Function ImportXml() As List(Of Personne) Dim xDoc As XDocument = XDocument.Load(String.Format("{0}\test.xml", Application.StartupPath)) Dim mesPersonnes As List(Of Personne) mesPersonnes = ( From personne In xDoc.Descendants("Personne") Select New Personne With {.Nom = personne.Element("Nom").Value, .Prenom = personne.Element("Nom").Attribute("Prenom").Value, .Naissance = Date.Parse(personne.Element("DateNaisance").Value)}).ToList() 'on en fait une liste - on convertit en datetime - on va chercher l'attribut - c'est un string donc pas de conversion - directement la balise qui contient les données d'une seule instance de personne Return mesPersonnes End Function Public Shared Sub ExportXml(MesPersonnes As List(Of Personne)) Dim xDoc As New XDocument(New XElement("Racine", New XElement("Balise1", New XElement("Balise2", New XElement("ListePersonnes", From personne In MesPersonnes Order By personne.Prenom Ascending Select New XElement("Personne", New XElement("Nom", New XAttribute("Prenom", personne.Prenom), personne.Nom), New XElement("DateNaisance", personne.Naissance))))))) ' on écrit l'élément date de naissance - on écrit l'élement Nom avec Prenom en attribut - triées par prénom pour le principe - on attaque la liste de personnes - et encore une - une balise xDoc.AddFirst(New XComment("Un petit commentaire tout au début pour la forme ;-)")) 'on sauve xDoc.Save(String.Format("{0}\test.xml", Application.StartupPath)) End Sub End Class
Dim mesPersonnes As List(Of Personne) mesPersonnes = Personne.ImportXml() 'import xml mesPersonnes = mesPersonnes.OrderBy(Function(p) p.Naissance).ToList() 'tri par date de naissance Personne.ExportXml(mesPersonnes)