Supprimer vide balises XML

Je suis à la recherche d'une bonne approche qui permet de supprimer les balises vides à partir de XML de manière efficace. Que recommandez-vous? Regex? XDocument? XmlTextReader?

Par exemple,

const string original = 
    @"<?xml version=""1.0"" encoding=""utf-16""?>
    <pet>
        <cat>Tom</cat>
        <pig />
        <dog>Puppy</dog>
        <snake></snake>
        <elephant>
            <africanElephant></africanElephant>
            <asianElephant>Biggy</asianElephant>
        </elephant>
        <tiger>
            <tigerWoods></tigerWoods>       
            <americanTiger></americanTiger>
        </tiger>
    </pet>";

Peut devenir:

const string expected = 
    @"<?xml version=""1.0"" encoding=""utf-16""?>
        <pet>
        <cat>Tom</cat>
        <dog>Puppy</dog>        
        <elephant>                                              
            <asianElephant>Biggy</asianElephant>
        </elephant>                                 
    </pet>";
argh! pas de regex!
J'ai fait un simple perfermance test hier, le XDocument est beaucoup mieux que les regex en termes de performances, je n'ai pas encore travaillé sur la façon de la mettre en œuvre à l'aide de la classe XmlTextReader, en termes de complexité, de XDocument est assez bon pour résoudre mon exigence, donc, je vais, pour XDocument, Merci à tous de votre aide!
cela peut vous aider stackoverflow.com/questions/14509188/...

OriginalL'auteur Ming | 2011-09-06