Question

Je pense à quelque chose comme une approche cela. S'il vous plaît laissez-moi savoir si cela peut effectivement fonctionner de cette façon: XML Exemple:

<Root>
  <Node>
    <SubEl1>abc</SubEl1>
    <SubEl2>def</SubEl2>
    <SubEl3>123</SubEl3>
    <SubEl4>456</SubEl4>      
  </Node>
</Root>

Voulez-vous aller dans <Node>, boucle par chèque pour le noeud / nom de l'élément et obtenir la valeur de lui. Quelque chose comme cela, le nom de dire est l'utilisation « SubEl1 » « abc » pour Task1, en voyant le nom de l'élément est «SubEl2 Je fais task2. Tous les sous-éléments doivent être vérifiés pour!

Exemple (code de travail non):

 //looping through 'Node' children
        switch(SubElName for 'Node element) 
        {
          case : 'SubEl1' 
            //Do Task1 using the SubEl1's value/TextName ...
          case: 'SubEl2' 
           //Task2 ...
          ... 
          case: default //Do default task.....
        } 
    //end loop

Si vous pouvez penser à toute autre approche (XElement, XmlDocument, SelectNodes (), etc., qui sera apprécié aussi!

Était-ce utile?

La solution

Pour cette tâche, il ressemble à tout ce que vous devez faire est de simplement créer une liste / dictionnaire du nom de noeud et la valeur de nœud, vous pouvez alors l'utiliser dans votre commutateur ....

var list = from x in XElement.Load(**yourxmlfile**).Element("Node").Elements()
           select new
           {
              Name = x.Name,
              Value = (string)x
           };

vous avez maintenant une liste de noms, de valeurs que vous pouvez simplement passer à votre méthode de commutation.

Autres conseils

n'ont pas fait usage encore, mais LINQ pour XML ressemble comme toutes sortes de super. Voici quelques liens. MSDN Référence Hooked On LINQ

scroll top