Paramétrer un fichier template xml

Résolu
arweene Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 5 août 2015 - 24 juil. 2015 à 16:12
arweene Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 5 août 2015 - 5 août 2015 à 16:07
Bonjour,
je voudrais créer un fichier xml template avec des variables comme par exemple:
<class>
<a>$a</a>
<b>$b</b>
<c>
<d>$x</d>
<e>$y</e>
<c>

les variables prennent les valeurs de la BD et donc je crée un fichier xml à partir de ce template avec différentes valeurs
sachant que mes tables et les tags xml ne sont pas les mêmes et j'ai dans chaque table une soixantaine d'attribut du coup je veux pas ecrire les tags élements par élements mais plutôt utiliser un fichier template.

1 réponse

m4cker Messages postés 65 Date d'inscription lundi 22 avril 2013 Statut Membre Dernière intervention 17 août 2016 1
Modifié par m4cker le 2/08/2015 à 22:06
Bonjour,

Tu devrais essayer de créer un objet correspondant au données que tu veux récupérer de ta base de donnée. Ensuite il te suffira de serializer ton objet en fichier xml.

Pour mon projet j'ai eu besoin de serializer des objets, je te fais cadeau de ma méthode :


public static class Serialization
{
public static string XmlSerialize(object objectInstance)
        {
            var serializer = new XmlSerializer(objectInstance.GetType());
            var sb = new StringBuilder();

            using (TextWriter writer = new StringWriter(sb))
            {
                serializer.Serialize(writer, objectInstance);
                writer.Dispose();
            }

            string content = sb.ToString();

            return content;
            
        }

        public static T XmlDeserializeFromString<T>(string objectData)
        {
            return (T)XmlDeserializeFromString(objectData, typeof(T));
        }


        public static object XmlDeserializeFromString(string objectData, Type type)
        {
            var serializer = new XmlSerializer(type);
            object result = null;

            if (objectData != null)
            {

                using (TextReader reader = new StringReader(objectData))
                {
                    result = serializer.Deserialize(reader);
                    reader.Dispose();
                }
            }
            return result;
        }
}


Pour faire appel à la serialization, tu fais comme suit :

MyObject o = new MyObject();
/* Tu set tous tes champs de ta base de donnée directement via le constructeurs (ou après au choix) puis tu serializes */
string objectSerialized = Serialization.XmlSerialize(object);

/* Pour déserializer si besoin : */
MyObject o = Serialization.XmlDeserializeFromString<MyObject >(objectSerialized);


Il te suffira d'écrire dans un nouveau fichier xml le résultat de la sérialization (objectSerialized).
0
arweene Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 5 août 2015
5 août 2015 à 11:36
merci pour ta réponse.
j'ai fait un peu comme ta méthode avant de poster mais le problème c'est que mes objets et les tags xml n'ont pas les mêmes noms et j'ai pas besoin de créer tout les tags correspondant à tous les attributs de chaque objet. et le fichier xml que je dois créer contient des tags qui ont des valeurs prédéfinies pour des types d'objet. c'est pour ça que je dois avoir un fichier template qui pourra être paramètrer selon les différents projet qui utiliseront l'application que je développe.
0
cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017 9 > arweene Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 5 août 2015
5 août 2015 à 13:18
Bonjour,

pourquoi ne pas créer une classe de base avec les propriétéss communes et la dériver pour chaque les types de particuliers.

ensuite pour supprimer certain tag utilises les attributs pour la serialisation XML (XMLIgnore) et autres vas voir ici :

http://tlevesque.developpez.com/dotnet/xml-serialization

bonne journée
0
arweene Messages postés 3 Date d'inscription vendredi 24 juillet 2015 Statut Membre Dernière intervention 5 août 2015 > cgandco Messages postés 219 Date d'inscription mercredi 26 octobre 2011 Statut Membre Dernière intervention 22 juin 2017
5 août 2015 à 16:07
merci beaucoup!!!!! ça répond exactement à ce que je veux faire!!
0
Rejoignez-nous