Avatar billede clinton-2 Nybegynder
14. marts 2007 - 10:54 Der er 7 kommentarer og
1 løsning

Simpel XML læsning fra fil.

Har følgende XML fil der skal fungere som en slags gammeldags inifil.

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <database>
    <server>db.rap</server>
    <user>usr</user>
    <pass>psw</pass>
  </database>
  <pc>
    <ip>10.0.0.1</ip>
  </pc>
</root>

Hvordan henter man smartest de forskellige felter ud, samtidig med at det er muligt at tilføje manuelt.
Avatar billede kalp Novice
14. marts 2007 - 10:56 #1
læst mit første indlæg her
http://www.eksperten.dk/spm/767716

virker perfekt til dit.
Avatar billede clinton-2 Nybegynder
14. marts 2007 - 11:02 #2
Kan ikek se hvordan jeg får f.eks user ud, uden at skulle parse, der må være noget smartere.
Avatar billede kalp Novice
14. marts 2007 - 11:10 #3
har du overhovedet kigget på mit eksempel i den anden tråd?
det er jo copy & paste.


XmlDocument document = new XmlDocument();
document.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<root>
  <database>
    <server>db.rap</server>
    <user>usr</user>
    <pass>psw</pass>
  </database>
  <pc>
    <ip>10.0.0.1</ip>
  </pc>
</root>>
");

XmlNodeList nodes = document.SelectNodes("//*");

foreach(XmlElement node in nodes)
{
  switch (node.Name)
        {
            case "server": { Console.WriteLine("server: "+ node.InnerText); } break;
            case "user": { Console.WriteLine("user: "+ node.InnerText); } break;
            case "pass": { Console.WriteLine("pass: "+ node.InnerText); } break;
        }
}
Avatar billede kalp Novice
14. marts 2007 - 11:11 #4
du kan da bare hive user ud direkte hvis du vil det.. (og det jeg skrev før er skam ikke usmart.. måske i dine øjne)

hiv user ud alene..

XmlDocument document = new XmlDocument();
document.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<root>
  <database>
    <server>db.rap</server>
    <user>usr</user>
    <pass>psw</pass>
  </database>
  <pc>
    <ip>10.0.0.1</ip>
  </pc>
</root>>
");

document.SelectSingleNode("//user").InnerText;
Avatar billede clinton-2 Nybegynder
14. marts 2007 - 11:24 #5
Indrømmer at det måske gik lige stærkt nok, og fik kigget på svaret fra dr_chaos istedet. Men det løser umiddelbart stadig ikke mit problem, hvis jeg nu opretter en ny user under pc, vil der være noget sammenfald. Er det ikek muligt at tilgå strengene med noget lignende root.database.server?
Avatar billede kalp Novice
14. marts 2007 - 11:37 #6
document.SelectSingleNode("/root/database/server").InnerText;

men det løser stadig ikke dit problem.. nu er jeg godt nok ikke med på hvad du prøver på 100%, men hvis du vil skelne mellem dine Nodes kan du jo give dine databaser et id!

<database id="1">
    <server>db.rap</server>
    <user>usr</user>
    <pass>psw</pass>
  </database>

<database id="2">
    <server>db.rap</server>
    <user>usr</user>
    <pass>psw</pass>
  </database>


ja eller noget andet.. id kan være det du vil tjekke på nu skrev jeg bare et tal.
Avatar billede clinton-2 Nybegynder
14. marts 2007 - 11:40 #7
Takker, det var lige linien document.SelectSingleNode("/root/database/server").InnerText; jeg manglede.
Avatar billede kalp Novice
14. marts 2007 - 11:42 #8
ingen årsag:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester