Jump to content

Problema com XML


Recommended Posts

Posted

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

Posted

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.

Posted

é 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

Posted

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
Posted

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 😉

Posted

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): http://img262.imageshack.us/img262/5333/teste1cy6.th.jpg

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

Posted

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 😄

Thanks a todos os que ajudaram.

Posted

Desculpa ter enviado o código em VB.NET, mas só agora reparei que era em C# que precisavas. 😄

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.