none
Separar itens por: Tipo, ID (XML) RRS feed

  • Pergunta

  • Eu estou com problemas para separar os itens de um arquivo XML de acordo com seu tipo OU id
    exemplo:
    <Roupas>
    <ITEM id="0" nome="Chapeu 2" Tipo="Chapeu"/>
    <ITEM id="5" nome="Chapeu 1" Tipo="Chapeu"/>
    <ITEM id="1" nome="Camisa 2" Tipo="Camisa"/>
    <ITEM id="3" nome="Camisa 1" Tipo="Camisa"/>
    <ITEM id="4" nome="Calça 2" Tipo="Calça"/>
    <ITEM id="7" nome="Calça 1" Tipo="Calça"/>
    <ITEM id="2" nome="Sapato 2" Tipo="Sapato"/>
    <ITEM id="6" nome="Sapato 1" Tipo="Sapato"/>
    </Roupas>



    Gerar uma lista como
    (por tipo)
    Roupas:
    Chapeu 1
    Chapeu 2
    Camisa 1
    Camisa 2
    Calça 1
    Calça 2
    Sapato 1
    Sapato 2


    (por id)
    Roupas
    Chapeu 2
    Camisa 2
    Sapato 2
    Camisa 1
    Calça 2
    Chapeu 1
    Sapato 1
    Calça 1


    Eu não sei como eu poderia ler o arquivo XML com essas informações e depois orgaizar eles de acordo com seu ID ou Tipo

    Obrigado...
    quinta-feira, 8 de setembro de 2011 16:59

Respostas

  • Amigo, segue um exemplo utilizando LINQ to XML

    XDocument xDoc = XDocument.Parse(xml);
                 List<string> Roupas = (from c in xDoc.Descendants("ITEM")
                                        orderby c.Attribute("Tipo").Value
                                        select c.Attribute("nome").Value).ToList();
    

    para ordenar pelo id, basta trocar o Tipo por Id no orderby


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta Olavo Oliveira Neto quinta-feira, 8 de setembro de 2011 19:51
    • Marcado como Resposta berTrito quinta-feira, 8 de setembro de 2011 20:46
    • Não Marcado como Resposta berTrito quinta-feira, 8 de setembro de 2011 20:54
    • Marcado como Resposta berTrito quinta-feira, 8 de setembro de 2011 20:55
    quinta-feira, 8 de setembro de 2011 19:51

Todas as Respostas

  • Amigo, segue um exemplo utilizando LINQ to XML

    XDocument xDoc = XDocument.Parse(xml);
                 List<string> Roupas = (from c in xDoc.Descendants("ITEM")
                                        orderby c.Attribute("Tipo").Value
                                        select c.Attribute("nome").Value).ToList();
    

    para ordenar pelo id, basta trocar o Tipo por Id no orderby


    Olavo Oliveira Neto
    http://olavooneto.wordpress.com
    Se for útil marque como resposta e faça um Developer feliz :)
    • Sugerido como Resposta Olavo Oliveira Neto quinta-feira, 8 de setembro de 2011 19:51
    • Marcado como Resposta berTrito quinta-feira, 8 de setembro de 2011 20:46
    • Não Marcado como Resposta berTrito quinta-feira, 8 de setembro de 2011 20:54
    • Marcado como Resposta berTrito quinta-feira, 8 de setembro de 2011 20:55
    quinta-feira, 8 de setembro de 2011 19:51
  • e, esse exemplo iria arrumar a ordem de "Tipo" por exemplo, em Chapeu, Camisa, Calça, Sapato.. se estiverem bagunçados no arquivo ?
    em XDocument xDoc = XDocument.Parse(xml); nesse xml eu botaria o diretorio do meu arquivo xml ?


    • Editado berTrito quinta-feira, 8 de setembro de 2011 21:20
    quinta-feira, 8 de setembro de 2011 20:56