Ir para o conteúdo
MuRdOc

Problema com XML

Mensagens Recomendadas

MuRdOc    0
MuRdOc

boas, tou a utilizar um .xml para guardar definiçoes de um programa que estou a fazer. A parte de criar o .xml e meter la os dados correu td bem, o problema é que nao consigo ler os valores, dá sempre null...

tou a fazer assim:

                textReader = new XmlTextReader("c:\\settings.xml");
                textReader.Read();

                while (textReader.Read())
                {

                    if (textReader.LocalName == "Username")
                        lblTest1.Text = textReader.Value;

                    if (textReader.LocalName == "Password")
                        lblTest2.Text = textReader.Value;

                    if (textReader.LocalName == "Adress")
                        lblTest3.Text = textReader.Value;

                    if (textReader.LocalName == "Database")
                        lblTest4.Text = textReader.Value;
                }

E este é o file .xml

<?xml version="1.0"?>
<ROOT>
  <Username>sa</Username>
  <Password>teste</Password>
  <Adress>teste</Adress>
  <Database>Northwind</Database>
</ROOT>

Alguem pode dar umas luzinhas? Thanks

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
benny    0
benny

Não sei se estarei a dizer alguma bacorada, mas como o XML funciona com nest´s, se calhar teria mais lógica teres o teu ficheiro XML com um nest Conf (por exemplo) e depois então teres os seus "atributos" nesse nest.

É só um àparte.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MuRdOc    0
MuRdOc

é assim, eu n percebo muito de XML (se calhar seria mais certo dizer q n percebo mm nada) portanto n tou a ver o que tas a dizer... de qualquer das maneiras vou googlar isso.

PS: caraças enganei-me na secçao :s

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

Não será melhor algo do genero:

Dim doc As XmlDocument = New XmlDocument
        doc.Load("C:\file.xml")

        Dim nodes As XmlNodeList = doc.SelectNodes("/ROOT")
        Dim node As XmlNode
        For Each node In nodes

            Console.WriteLine(node("Username").InnerText)
            Console.WriteLine(node("Password").InnerText)
            Console.WriteLine(node("Address").InnerText)
            Console.WriteLine(node("Database").InnerText)
        Next

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MuRdOc    0
MuRdOc

Não será melhor algo do genero:

Dim doc As XmlDocument = New XmlDocument
        doc.Load("C:\file.xml")

        Dim nodes As XmlNodeList = doc.SelectNodes("/ROOT")
        Dim node As XmlNode
        For Each node In nodes

            Console.WriteLine(node("Username").InnerText)
            Console.WriteLine(node("Password").InnerText)
            Console.WriteLine(node("Address").InnerText)
            Console.WriteLine(node("Database").InnerText)
        Next

hmmm ok vou tentar, thx ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MuRdOc    0
MuRdOc

bom, fiz assim:

//string strUsername = "Username";
(...)
XmlDocument document = new XmlDocument();
document.Load("c:\\settings.xml"); 

XmlNodeList xmllist = document.SelectNodes("/ROOT");

foreach (XmlNode node in xmllist)
{
     //if (String.Equals(strUsername, node.Name))
           lblTest1.Text += node.InnerText;
}

o que devolve (a parte importante é a 1ª label2): teste1cy6.th.jpg

mas sem a string e o if comentados, nao devolve nada, fica só label2. n consigo ir buscar os outros nodes

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
MuRdOc    0
MuRdOc

ah consegui :)

XmlDocument document = new XmlDocument();
document.Load("c:\\settings.xml");
XmlElement xmlROOT = document.DocumentElement;
XmlNode xmlSettings = xmlROOT.FirstChild;

XmlNodeList xmllist = xmlSettings.ChildNodes;

foreach (XmlNode node in xmllist)
{
     if (String.Equals(strUsername, node.Name))
         lblTest1.Text = node.InnerText;
     if (String.Equals(strPassword, node.Name))
         lblTest2.Text = node.InnerText;
     if (String.Equals(strAdress, node.Name))
         lblTest3.Text = node.InnerText;
     if (String.Equals(strDatabase, node.Name))
         lblTest4.Text = node.InnerText;
}

fica aqui para quem precisar :D

Thanks a todos os que ajudaram.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade