none
Leitura e Manipulamento de um XML RRS feed

  • Pergunta

  • Boa tarde, é meu primeiro post aqui no Fórum MSDN então vou tentar ser o amsi específico possível.

    Há alguns dias estou tentando criar uma pequena aplicação em Visual Basic (o novo Beta 2 de codename Orcas) onde preciso armazenar algumas informações.

    São muitas para se usar em arquivos de texto plano e poucas para se usar um banco de dados, então optei por XML.

    Pois bem, inicialmente a intenção era apenas montar um combobox com as informações do XML que, genericamente se parece com isso:

    Code Block

    <?xml version="1.0" encoding="utf-8"?>
    <Shop>
      <item>
        <ID>1</ID>
        <name>Texto 1</name>
      </item>
      <item>
        <ID>2</ID>
        <name>Texto 2</name>
      </item>
    </Shop>


    Certinho. Para um combobox simples, vi que poderia usar como um DataSet e fiz isso:

    Code Block

    Dim var As New DataSet

    var.ReadXml("meuXML.xml")

    With Me.Combobox1

    .DataSource = var.Tables("item")
    .DisplayMember = "name"
    .ValueMember = "ID"
    End With


    E  funcionou direitinho. Populou o Combobox com as informações a serem vistas por DisplayMember e os valores utilizáveis por ValueMember.

    O problema é que agora gostaria de fazer algumas coisas a mais com o XML.

    Mas o quê?

    Primeiramente gostaria de adicionar algumas tags a mais dentro de cada par <item></item>, transformando meu XML original em algo mais ou menos nisso:

    Code Block

    <?xml version="1.0" encoding="utf-8"?>
    <Shop>
      <item>
        <ID>1</ID>
        <name>Texto 1</name>

        <level>5</level>

        <location>Minha Casa</location>

        <DA>Sim</DA>

      </item>
      <item>
        <ID>2</ID>
        <name>Texto 2</name>

        <level>10</level>

        <location>Casa da Avó</location>

        <DA>Não</DA>

      </item>
    </Shop>


    E com essas novas informações poder exibir, no mesmo formulário, logo abaixo do atual Combobox.

    Mais ou menos no formato:

    Code Block

    [label]Nome:[/label]                     [ Informação da tag <name></name>         ]
    [level]Level:[/level]                    [ Informação da tag <level></level>       ]
    [location]Localização:[/location]        [ Informação da tag <location></location> ]
    [DA]Nome:[/DA]                           [ Informação da tag <DA></DA> ]


    Aqui, os BBCodes demonstrativos [label][/label] descrevem um elemento Label no Designer do formulário.
    Os outros compreendidos entre colchetes representam algum outro tipo de campo que possa exibir as informações e que não permita edição.
    Pensei em Label também, mas não tive sucesso no "esquema de código" semelhante ao do combobox citado, uma vez que parece que elementos Label não têm a propriedade (se é que se chama assim) .DataSource.

    Portanto, gostaria que alguém me ajudasse com esse problema, seja usando o mesmo esquema de código atual meu ou algum outro tipo de código que manipule o XML suprindo minhas necessidades tanto em Combobox quanto para exibição dessas pequenas infromações.

    Desde já, agradeço

    sábado, 20 de outubro de 2007 17:59