Supprimer des attributs de XElement

Je suis en train de supprimer certains attributs de document xml. Voici ce que j'ai essayé:

private void RemoveEmptyNamespace(XElement element) {
            foreach (XElement el in element.Elements()) {
                if (el.Attribute("xmlns") != null && el.Attribute("xmlns").Value == string.Empty)
                    el.Attribute("xmlns").Remove();
                if (el.HasElements)
                    RemoveEmptyNamespace(el);
            }
        }

Mais ça ne fonctionne pas. Quand je debug à l'intérieur de la méthode, attribut est supprimé, mais lorsque la méthode est exécutée entièrement, aucun changement n'a été enregistré. Le document est le même. Je suppose que c'est à cause de la boucle foreach, mais je ne vois pas d'autre moyen de la boucle à travers.

Toutes les suggestions sont les bienvenues.

EDIT: Voici le code entier je suis en utilisant:

        var file = new FileStream(destinationPath, FileMode.Open);
        var doc = new XDocument();
        doc = XDocument.Load(savedFile);
        RemoveEmptyNamespace(doc.Root);//method above
        file.SetLength(0);
        doc.Save(file);
        file.Close();

EDIT2: Maintenant, j'ai essayé d'atteindre le même but par aller ligne par ligne et le remplacement de chaînes de caractères. Et rien ne se passe!!! Le document est toujours le même. Si quelqu'un a eu le même problème, merci de m'aider.

au lieu de la première, si, essayez ce qui suit: "si (Chaîne de caractères.IsNullOrEmpty(el.Attribut("xmlns"))"
Holterman Pas sauvé signifie que le document est le même qu'il était avant l'appel de la méthode, comme je l'ai décrit dans la question.
Le problème est dans l'épargne que, pas dans la méthode que vous avez décrit. Utilisez simplement doc.Enregistrer(nom de fichier) à la place. fichier.SetLengh - pour quoi faire?
Holterman Mon xml est .fichier csproj, mais qui ne devrait pas d'importance. Je suis vraiment confus.
Je suis à la longueur de réglage à 0 parce que je ne veux pas ajouter du texte à un document existant, mais pour éliminer en premier. Je suis à l'aide de la doc.Enregistrer...

OriginalL'auteur Vale | 2011-07-06