Domanda

Sto pensando di un qualcosa di simile approccio. Per favore fatemi sapere se questo può effettivamente lavorare in questo modo: Per XML di esempio:

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

vuole andare in <Node>, loop-through di controllo per il nome del nodo / elemento e ottenere il suo valore. Qualcosa del genere, il nome dice è 'SubEl1' uso 'abc' per task1, vedendo il nome dell'elemento è 'SubEl2' che faccio TASK2. Tutti i sotto-elementi devono essere controllati per!

Esempio (codice non lavora):

 //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

Se si può pensare di qualsiasi altro approccio (XElement, XmlDocument, SelectNodes (), ecc, che saranno apprezzati anche!

È stato utile?

Soluzione

Per questo compito sembra che tutto quello che dovete fare è semplicemente creare un elenco / dizionario del nome del nodo e il valore del nodo, è quindi possibile utilizzare che nel vostro switch ....

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

ora si dispone di un elenco di nome, coppie di valori si può semplicemente passare al metodo switch.

Altri suggerimenti

Non hai fatto un uso di esso ancora, ma LINQ to XML aspetto come tutti i tipi di impressionante. Qui ci sono alcuni link. MSDN di riferimento Hooked On LINQ

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top