IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Ecrire dans un fichier Xml?


Sujet :

Silverlight

  1. #1
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut Ecrire dans un fichier Xml?
    Bonjour,
    J'ai un fichier Xml dans mon répertoir ClientBin dans lequel je souhaiterai rajouter du texte.

    J'arrive à lire les infos présente dans ce fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    WebClient xmlClient = new WebClient();
     
                xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(XMLFileLoaded);
                xmlClient.DownloadStringAsync(new Uri("Fichier.Xml", UriKind.RelativeOrAbsolute));
    Par contre pas moyen d'écrire dedans.
    J'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WebClient xmlClient2 = new WebClient();
                xmlClient2.UploadStringCompleted += new UploadStringCompletedEventHandler(XMLFileUploaded);
                xmlClient2.UploadStringAsync(new Uri("Fichier.Xml", UriKind.RelativeOrAbsolute), "Ce_que_je_souhaite_écrire");
    J'ai également essayé en utilisant OpenReadAsync sans résultat.

    Aucune erreurs de compilation mais cela n'écrit rien dans mon fichier cible.
    Je dois procéder comment???

    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    il y a quelque chose qui m'échappe... vu l'Uri que tu utilises, je suppose que tu essaies d'écrire dans un fichier local ? dans ce cas pourquoi utiliser la classe WebClient ?

  3. #3
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par tomlev Voir le message
    il y a quelque chose qui m'échappe... vu l'Uri que tu utilises, je suppose que tu essaies d'écrire dans un fichier local ? dans ce cas pourquoi utiliser la classe WebClient ?
    En fait j'essais d'écrire depuis le client dans un fichier se trouvant sur le serveur.
    Mais j'ai l'impression que cela est impossible sous Silverlight.

    Maintenant, je suis un peu à court d'idée.
    Mon but étant que chaque utilisateurs connectés à un serveur puissent laisser des messages que part la suite l'ensemble des utilisateurs puissent lire. Un GuestBook en gros!
    Ce GuestBook serait par exemple une sorte de ListBox remplit par un fichier Xml se trouvant à la racine du serveur (FichierServeur.Xml).

    Finalement, je me demande s'il ne vaut mieux pas que chaque client, lorsqu'il saisit une donnée l'enregistre dans son isolated storage (FichierClient.Xml). Puis ensuite le serveur lit ce fichier (FichierClient.Xml) et procède à la mise à jour de son propre fichier (FichierServeur.Xml).

    Si quelqu'un a une solution, je suis preneur!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ah ok, j'avais pas vu que c'était dans le forum silverlight

    Ben il suffit de créer sur le serveur un webservice avec une méthode LaisserUnMessage(string message), que tu appelles à partir du client

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Une requête http et un simple script PHP peuvent faire l'affaire:
    http://nico-pyright.developpez.com/t...lightandmysql/
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  6. #6
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Ah ok, j'avais pas vu que c'était dans le forum silverlight

    Ben il suffit de créer sur le serveur un webservice avec une méthode LaisserUnMessage(string message), que tu appelles à partir du client
    J'ai créer un service web en suivant le très complet tuto de Badger : http://badger.developpez.com/tutorie...ight-2-et-wcf/

    J'ai à peu près compris comment appeler un service. Niveau traitement coté serveur je bloque.
    Je ne vois pas comment créer et gérer un fichier pour stocker sur le serveur les données envoyées par un client?

    Une piste?!

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben tu peux avoir un fichier avec un format comme ça par exemple :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0"?>
    <GuestBook>
        <Messages>
            <Message From="titi" Date="20090101">Bonne année !</Message>
            <Message From="tata" Date="20090225">Bonjour</Message>
            <Message From="toto" Date="20090418">Hello world</Message>
        </Messages>
    </GuestBook>

    Pour ajouter des données, tu peux utiliser la classe XmlDocument ou la sérialisation XML (dans un cas comme c'est probablement l'option la plus simple)

  8. #8
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    XmlDocument n'étant pas dispo pour Silverlight, je me suis rabattu sur XDocument. Problème, je ne peux accéder au fichier xml que j'ai placé dans le répertoir ClientBin du serveur.
    message: Impossible de trouver le fichier 'MonFichierXML.xml' dans le package xap de l'application.



    Mais j'aimerai être sur d'avoir bien compris.

    Je dois coder du coté serveur dans le fichier '.svc.cs' par exemple , c'est bien çà?

    J'essais ce code placé dans le fichier service '.svc.cs':


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      StringBuilder output = new StringBuilder();
               StringBuilder sb = new StringBuilder();
                XmlWriterSettings xws = new XmlWriterSettings();
                xws.OmitXmlDeclaration = true;
                xws.Indent = true;
     
                using (XmlWriter xw = XmlWriter.Create(sb, xws))
                {
                     XDocument doc = new XDocument(
                         new XElement("Child",
                             new XElement("GrandChild", "some content"))
                     ); 
                    doc.Save(xw);
                }
    Mais je ne comprends pas bien ce code, comment indiquer quel fichier modifier ou créer?
    Merci pour votre aide...

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par roster Voir le message
    XmlDocument n'étant pas dispo pour Silverlight, je me suis rabattu sur XDocument. Problème, je ne peux accéder au fichier xml que j'ai placé dans le répertoir ClientBin du serveur.
    message: Impossible de trouver le fichier 'MonFichierXML.xml' dans le package xap de l'application.
    C'est le serveur qui doit manipuler le XML, pas le client Silverlight...

    Citation Envoyé par roster Voir le message
    Mais j'aimerai être sur d'avoir bien compris.

    Je dois coder du coté serveur dans le fichier '.svc.cs' par exemple , c'est bien çà?
    Oui

    Citation Envoyé par roster Voir le message
    J'essais ce code placé dans le fichier service '.svc.cs':
    ...
    Mais je ne comprends pas bien ce code, comment indiquer quel fichier modifier ou créer?
    Avec ce code tu n'enregistres pas le XML dans un fichier, mais dans une chaine de caractères... fais plutôt XmlWriter.Create("NomDuFichier.xml", xws)

  10. #10
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par tomlev Voir le message

    fais plutôt XmlWriter.Create("NomDuFichier.xml", xws)

    Ca marche, merci beaucoup!

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Points : 21
    Points
    21
    Par défaut
    si je comprend bien il faut saisir XmlWriter.Create("NomDuFichier.xml", xws) dans la partie serveur ?

    Peut on avoir un recap du code qui fonctionne car chez moi il n'ajoute pas dans mon fichier XML

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DOM XML] Ecrire dans un fichier xml
    Par GTJuanpablo dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/07/2007, 16h26
  2. Réponses: 1
    Dernier message: 20/02/2007, 14h43
  3. [FLASH 8] Ecrire dans un fichier xml
    Par dom_dev dans le forum Flash
    Réponses: 9
    Dernier message: 26/09/2006, 11h10
  4. Lire/Ecrire dans un fichier .xml depuis Java
    Par SkyBioSS dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 16/05/2006, 18h38
  5. <xml><asp.net> Ecrire dans un fichier xml
    Par kenkine dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/03/2006, 12h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo