private void WriteXML()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.DefaultExt = ".xml";
ofd.Filter = "Fichiers XML (.xml)|*.xml";
if(ofd.ShowDialog() == true)
{
XDocument xDoc = new XDocument(new XElement("Nom Projet", NouveauProjet.NomProjet),
new XElement("Compteur Points", NouveauProjet.CompteurProjet.ComptePoint),
new XElement("Compteur Arcs", NouveauProjet.CompteurProjet.CompteArc),
new XElement("Etage", from MyEtages in NouveauProjet.CollecEtages
select new XElement("Nom Etage", Etage.Nom_Etage),
from Etages in NouveauProjet.CollecEtages
select new XElement("Numéro Etage", Etage.No_Etage),
from Etages in NouveauProjet.CollecEtages
select new XElement("Z Etage", Etage.Z_Etage)),
new XElement("Liste Points", from MyNoeud in Etage.CollecNoeuds
select new XElement("ID Point", MyNoeud.No_ID_Noeud),
from MyNoeud in Etage.CollecNoeuds
select new XElement("Coordonnées X, Y", MyNoeud.Coord_P),
from MyNoeud in Etage.CollecNoeuds
select new XElement("Coordonnées Z", MyNoeud.Coord_Z),
from MyNoeud in Etage.CollecNoeuds
select new XElement("No Etage", MyNoeud.No_Etage),
from MyNoeud in Etage.CollecNoeuds
select new XElement("Type Point", MyNoeud.TypeNoeud)),
new XElement("Liste Arcs", from MyArcs in Etage.CollecArcs
select new XElement("ID Arc", MyArcs.No_ID_Arc),
from MyArcs in Etage.CollecArcs
select new XElement("Type Arc", MyArcs.TypeArc),
from MyArcs in Etage.CollecArcs
select new XElement("Point 1 : ID", MyArcs.Node_D.No_ID_Noeud),
from MyArcs in Etage.CollecArcs
select new XElement("Point 1 : Coordonnées X, Y", MyArcs.Node_D.Coord_P),
from MyArcs in Etage.CollecArcs
select new XElement("Point 1 : Coordonnées Z", MyArcs.Node_D.Coord_Z),
from MyArcs in Etage.CollecArcs
select new XElement("Point 1 : No Etage", MyArcs.Node_D.No_Etage),
from MyArcs in Etage.CollecArcs
select new XElement("Point 1 : Type", MyArcs.Node_D.TypeNoeud),
from MyArcs in Etage.CollecArcs
select new XElement("Point 2", MyArcs.Node_F.No_ID_Noeud),
from MyArcs in Etage.CollecArcs
select new XElement("Point 2 : Coordonnées X, Y", MyArcs.Node_F.Coord_P),
from MyArcs in Etage.CollecArcs
select new XElement("Point 2 : Coordonnées Z", MyArcs.Node_F.Coord_Z),
from MyArcs in Etage.CollecArcs
select new XElement("Point 2 : No Etage", MyArcs.Node_F.No_Etage),
from MyArcs in Etage.CollecArcs
select new XElement("Point 2 : Type", MyArcs.Node_F.TypeNoeud)));
xDoc.AddFirst(new XComment("Ce fichier contient les données des différentes collections de points et d'arcs stockées dans les collections d'étages du projet"));
string NomFichier = ofd.FileName;
xDoc.Save(string.Format(NomFichier));
}
}
private void ReadXML()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "Fichiers XML (.xml)|*.xml";
if (ofd.ShowDialog() == true)
{
string NomFichier = ofd.FileName;
XDocument xDoc = XDocument.Load(string.Format(NomFichier));
NouveauProjet.CollecEtages = (from MyEtages in xDoc.Descendants("Etage")
select new Etages
{
Nom_Etage = MyEtages.Element("Nom Etage").Value,
No_Etage = int.Parse(MyEtages.Element("Numéro Etage").Value),
Z_Etage = Double.Parse(MyEtages.Element("Z Etage").Value),
CollecNoeuds = (from MyNoeud in xDoc.Descendants("Liste Points")
select new Etages.ClassNoeuds
{
No_ID_Noeud = int.Parse(MyNoeud.Element("ID Point").Value),
Coord_P = Point.Parse(MyNoeud.Element("Coordonnées X").Value),
Coord_Z = Double.Parse(MyNoeud.Element("Coordonnées Z").Value),
No_Etage = int.Parse(MyNoeud.Element("No Etage").Value),
TypeNoeud = int.Parse(MyNoeud.Element("Type Point").Value),
}),
CollecArcs = (from MyArcs in xDoc.Descendants("Liste Arcs")
select new Etages.ClassArcs
{
No_ID_Arc = int.Parse(MyArcs.Element("ID Arc").Value),
TypeArc = int.Parse(MyArcs.Element("Type Arc").Value),
Node_D = new Etages.ClassNoeuds
{
No_ID_Noeud = int.Parse(MyArcs.Element("Point 1 : ID").Value),
Coord_P = Point.Parse(MyArcs.Element("Point 1 : Coordonnées X, Y").Value),
Coord_Z = Double.Parse(MyArcs.Element("Point 1 : Coordonnées Z").Value),
No_Etage = int.Parse(MyArcs.Element("Point 1 : No Etage").Value),
TypeNoeud = int.Parse(MyArcs.Element("Point 1 : Type").Value)
},
Node_F = new Etages.ClassNoeuds
{
No_ID_Noeud = int.Parse(MyArcs.Element("Point 2 : ID").Value),
Coord_P = Point.Parse(MyArcs.Element("Point 2 : Coordonnées X, Y").Value),
Coord_Z = Double.Parse(MyArcs.Element("Point 2 : Coordonnées Z").Value),
No_Etage = int.Parse(MyArcs.Element("Point 2 : No Etage").Value),
TypeNoeud = int.Parse(MyArcs.Element("Point 2 : Type").Value)
}
})
});
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question//La sérialisation se fait en 3 lignes FileStream fs = new FileStream("projet.xml", FileMode.Create); XmlSerializer serializer = new XmlSerializer(typeof(Projet)); serializer.Serialize(fs, ProjetInstance); //4 lignes pour le chargement StreamReader stream = new StreamReader("projet.xml", Encoding.UTF8); XmlSerializer serializer = new XmlSerializer(typeof(Projet)); XmlTextReader reader = new XmlTextReader(stream.BaseStream); Projet ProjetInstance = (Projet)serializer.Deserialize(reader);
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Projet"> <xs:complexType> <xs:sequence> <xs:element name="ListEtage"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Etage"> <xs:complexType> <xs:sequence> <xs:element name="ListPoint"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Point"> <xs:complexType> <xs:attribute name="_x" type="xs:integer" use="required" /> <xs:attribute name="_y" type="xs:integer" use="required" /> </xs:complexType>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] [System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)] public class Projet { private ProjetEtage[] _listeEtageField; private string _nameProjectField; /// <remarks/> [System.Xml.Serialization.XmlArrayItemAttribute("Etage", IsNullable = false)] public ProjetEtage[] ListEtage { get { return this._listeEtageField; } set{ this._listeEtageField = value;} } /// <remarks/> [System.Xml.Serialization.XmlAttributeAttribute()] public string NameProject { get{ return this._nameProjectField; } set{ this._nameProjectField = value;} } }
1 juil. 2015 à 13:29
Mais pr le txt je ne trouve aps d'exemples qui me convienne :/
1 juil. 2015 à 14:11