• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

NelsonBN

[Resolvido] Ajuda sobre ficheiros XML

10 mensagens neste tópico

Boas...

Precisava de uma pequena ajuda...

eu quero colocar numa listbox, os campos de um ficheiro XML...

este é o meu ficheiro xml

<lista>
<pessoa>
	<nome>Paulo</nome>
</pessoa>
<pessoa>
	<nome>Rui</nome>
</pessoa>
<pessoa>
	<nome>pedro</nome>
</pessoa>
<pessoa>
	<nome>Jorge</nome>
</pessoa>
<pessoa>
	<nome>Carlos</nome>
</pessoa>
</lista>

e o meu form_load():

        Dim doc As New XmlDocument
        Dim node As XmlNode
        Dim x As Integer

        doc.Load("c:\names.xml")
        node = doc.SelectSingleNode("/*/*/nome")

        For x = 0 To ???
           ListBox1.Items.Add(node.ChildNodes.Item(x).InnerText.ToString())
        Next x

alguém me pode dizer o que tenho mal feito, e como ponho isto a funcionar???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá,

tenta assim:

        Dim doc As New XmlDocument
        Dim nodes As XmlNode
        Dim x As Integer

        doc.Load("c:\names.xml")
        nodes = doc.SelectSingleNode("//nome")
  
         If nodes IsNot Nothing Then
              For Each node As XmlNode In nodes.ChildNodes
                    ListBox1.Items.Add(node.InnerText.ToString())
             Next
         End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens que alterar o teu xml.

altera o que tens para

<lista>
<pessoa>
	<nome>Paulo</nome>
	<nome>Rui</nome>
	<nome>pedro</nome>
	<nome>Jorge</nome>
	<nome>Carlos</nome>
</pessoa>
</lista>

não faz sentido teres a tag "pessoa" para cada nome. assim já deve dar :D

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tens que alterar o teu xml.

altera o que tens para

<lista>
<pessoa>
	<nome>Paulo</nome>
	<nome>Rui</nome>
	<nome>pedro</nome>
	<nome>Jorge</nome>
	<nome>Carlos</nome>
</pessoa>
</lista>

não faz sentido teres a tag "pessoa" para cada nome. assim já deve dar :D

cumps

É correcto!

Não reparei na estrutura do ficheiro XML.

@NelsonBN,

No entanto se não poderes alterar a estrutura e precisares de outra solução diz que também se arranja.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já tenho da maneira que o "Soulsick" disse....

mas jpaulino já agora podias-me dizer como se faz da outra maneira, posso eu futuramente querer adicionar mais um campo dentro de "<pessoa>". Como por exemplo <idade>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só uma pergunta o código que o jpaulino te deu está a funcionar correctamente?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já tenho da maneira que o "Soulsick" disse....

mas jpaulino já agora podias-me dizer como se faz da outra maneira, posso eu futuramente querer adicionar mais um campo dentro de "<pessoa>". Como por exemplo <idade>

É parecido:

        Dim xmlDoc As New Xml.XmlDocument
        xmlDoc.Load(Application.StartupPath & "\names.xml")

        Dim nodeList As Xml.XmlNodeList = xmlDoc.SelectNodes("//pessoa")
        If nodeList IsNot Nothing Then
            For Each node As Xml.XmlNode In nodeList
                Debug.WriteLine(node.InnerText)
            Next
        End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por falta de informação do utilizador e por existirem respostas aceitáveis à pergunta efectuada, esta questão foi marcada como resolvida.

Jorge Paulino

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora