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 :

remove avec linq to xml


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut remove avec linq to xml
    Bonjour,

    J'utilise linq to xml pour gérer un fichier xml présent dans l'isolatestorage, pour le load et le add pas de soucis, mais je bloque sur le remove voilà le code (sachant que j'utilise la méthode SaveXml dans le add et que cela fonctionne parfaitement) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     Dim ConfirmDelete As ConfirmDelete = CType(sender, ConfirmDelete)
     
     
            If ConfirmDelete.DialogResult.HasValue And ConfirmDelete.DialogResult.Value Then
     
     
                Using isoStore As IsolatedStorageFile = _
                                   IsolatedStorageFile.GetUserStoreForApplication()
     
     
                    Using isoStream As IsolatedStorageFileStream = _
                       isoStore.OpenFile("recettes.xml", FileMode.Open)
     
                        Dim Ex As XElement = XElement.Load(isoStream)
     
                        Dim SelEx = From tata In Ex.Elements("recette")
                                Where (tata.Attribute("Nom").Value = SelectedRecette.Name)
                                Select tata
     
                        SelEx.Remove()
     
     
                        isoStream.Dispose()
     
                        SaveXml(isoStore, Ex)
     
                    End Using
     
                End Using
     
            End If
     
     
        End Sub
     
     Private Sub SaveXml(ByVal Store As IsolatedStorageFile, ByVal Ex As XElement)
            Dim location As New IsolatedStorageFileStream("recettes.xml", FileMode.Open, FileAccess.ReadWrite, Store)
            ' Dim file = New System.IO.StreamWriter(location)
            Ex.Save(location)
            'file.Dispose()
            location.Dispose()
        End Sub
    Voila le fichier XMl avant suppression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-8"?>
    <recettes>
      <recette Nom="test" Type="1" Url="" Note="0" Comm="" ing1="" ing2="" ing3="" ing4="" vin="" img=""></recette>
      <recette Nom="toto" Type="1" Url="" Note="0" Comm="" ing1="" ing2="" ing3="" ing4="" vin="" img=""></recette>
    </recettes>
    Et le voilà apres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="utf-8"?>
    <recettes>
      <recette Nom="test" Type="1" Url="" Note="0" Comm="" ing1="" ing2="" ing3="" ing4="" vin="" img=""></recette>
    </recettes>Nom="toto" Type="1" Url="" Note="0" Comm="" ing1="" ing2="" ing3="" ing4="" vin="" img=""></recette>
    </recettes>
    Ca fait 3Hrs que je planche sur ce soucis et apres beaucoup de recherche je me resigne à demander votre aide, est ce que quelqu'un aura une solution ou une piste à me proposer?

    Merci d'avance.

    Cordialement,
    Nicolas.

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Et avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim location As New IsolatedStorageFileStream("recettes.xml", FileMode.Truncate, FileAccess.ReadWrite, Store)
    ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    En effet ca marche parfaitement.

    Quel est donc l'effet de truncat par rapport à open?

    merci en tout cas d'avoir débloqué la situation

  4. #4
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Truncate efface complètement le contenu du fichier ce qui permet de le réécrire à partir de zéro.

    C'est typiquement utile pour ce type de situation où il est difficile de réécrire partiellement une arborescence XML.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 69
    Par défaut
    parfait merci encore

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/11/2010, 06h17
  2. Réponses: 6
    Dernier message: 20/10/2010, 16h51
  3. gestion des namespaces avec LINQ XML
    Par flo1981 dans le forum Linq
    Réponses: 1
    Dernier message: 27/11/2009, 10h06
  4. Réponses: 0
    Dernier message: 28/10/2009, 10h08
  5. Réponses: 7
    Dernier message: 10/02/2008, 11h56

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