Comment faire pour supprimer tous les nœuds enfants d'un XmlElement, mais gardez tous les attributs?
Comment faire pour supprimer tous les nœuds enfants d'un XmlElement
, mais gardez tous les attributs?
Remarque, que XmlElement.RemoveAll supprime également tous les attributs. Ce qui est propre, élégant et performant façon de supprimer tous les nœuds enfants? En d'autres termes, quelle est la meilleure pratique ici?
OriginalL'auteur usr | 2013-04-10
Vous devez vous connecter pour publier un commentaire.
Pour une véritable solution efficace:
est votre plus rapide et la plus simple option. C'est exactement ce que vous avez demandé: tout intérieure du texte et des éléments imbriqués sont mis au rebut, tandis que les attributs sont conservés.
OriginalL'auteur Parsley
Serait-ce la solution de ne pas être plus simple?
removeAllChildren dans le cadre serait plus simple.
OriginalL'auteur Chris Walsh
Option 1
Utilisation
elem.InnerXml = "";
Le travail plein de code si vous avez besoin de ceci:Detailied d'informations, que InnerXml faire:
Il pourrait y avoir de problème de performance sur LoadInnerXmlElement mais parce que nous avons une chaîne vide, il ne doit pas être grand, parce que la plupart du temps prendra cette méthode:
Option 2
Code suivant:
Sur performane. Regardons vers XmlElement.RemoveAll() c'est:
Où la base.RemoveAll() est exactement:
Donc c'est même comme je l'ai écrit ci-dessus
J'ai ajouté des explications détaillées
Ok merci! Je vais mettre cela en une méthode d'extension et le problème est maintenant résolu bien pour tous les temps.
OriginalL'auteur Piotr Stapp