Pergunta

Estou pensando em uma abordagem algo assim. Informe -me se isso pode realmente funcionar da seguinte maneira: para a amostra XML:

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

Quero entrar em <Node>, loop até a verificação do nome do nó/elemento e obtenha seu valor. Algo assim, digamos, o nome é 'subel1' use 'ABC' para a tarefa1, ao ver o nome do elemento 'subel2' Eu faço Task2. Todos os subelementos devem ser verificados!

Exemplo (não o código de trabalho):

 //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 você consegue pensar em qualquer outra abordagem (Xelement, Xmldocument, selectNodes () etc., isso também será apreciado!

Foi útil?

Solução

Para esta tarefa, parece que tudo o que você precisa fazer é simplesmente criar uma lista/dicionário do nome do nó e do valor do nó, então você pode usá -lo no seu interruptor ....

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

Agora você tem uma lista de nome, pares de valor que você pode simplesmente passar para o seu método de troca.

Outras dicas

Ainda não fiz um uso disso, mas o Linq para XML parece todos os tipos de incríveis. Aqui estão alguns links.Referência do MSDN Viciado no Linq

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top