En boucle par tous les nœuds dans le fichier xml avec c#

J'ai un document xml avec une configuration similaire à ceci:

<invoice>
   <IssueDate>2015-09-07</IssueDate>
   <InvoiceType>380<InvoiceType>
   <AccountingSupplierParty>
        <Party>
             <EndpointID></EndpointID>
             <PartyName>
                  <Name>Company test</Name>
             </PartyName>
        </Party>
    </AccountingSupplierParty>
</invoice>

Ce est seulement une petite partie de l'ensemble du document xml, le fichier ressemble.

Je voudrais vérifier tous les éléments trop voir si elles ont des valeurs vides, comme EndpointID dans cet exemple (j'ai besoin de remplacer des valeurs vides avec NA).

C'est ce que j'ai à ce jour:

public static void AddToEmptyElements()
{
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load("testXml.xml");
    XmlNodeList nodes = xmlDoc.DocumentElement.ChildNodes;
    foreach (XmlNode node in nodes)
    {
        Console.WriteLine(node.Name);             
    }
}

Toutefois, ce code ne boucle par les enfants du nœud racine et pas tous les grandchilds (ou grand grandchilds) comme le <Party> et <EndpointID> éléments. Comment puis-je inclure ces éléments dans la boucle?

Ouais, bien sûr, utiliser la récursivité.
cochez cette stackoverflow.com/questions/2915294/...
Comme une note, LINQ to XML en général rend la vie beaucoup plus simple. Votre problème est certainement soluble avec XmlDocument, mais si vous pouviez utiliser LINQ to XML au lieu de cela, il serait un one-liner...
Pour le xml de la récursivité, je voudrais le code dans le site web suivant pour l'ajout de xml à un treeview. Utilisé le code d'un certain nombre de fois avant. stackoverflow.com/questions/28976601/...

OriginalL'auteur Sindresvends | 2015-09-21