Avatar billede droa Novice
28. juni 2009 - 20:49 Der er 4 kommentarer og
1 løsning

Søge og hente fra en XML fil

jeg har denne code.


    public class MoodInfo
    {
        XmlDocument doc = new XmlDocument();

        public void LoadXMood()
        {
        doc.Load(@"dansk.xml");
        }

        public string GetXMood(string mood, int type)
        {
            string r;
            XmlNodeList x = doc.DocumentElement.SelectNodes(mood+"[type='"+type.ToString()+"']");
            r = x[0].ChildNodes[0].FirstChild.Value;
            return r;
        }
    }


og dette er min XML

<?xml version='1.0' standalone='yes'?>
<pet>
    <mood>
        <happy type="1">
            <info>Dit dyr er glad</info>
        </happy>
        <happy type="2">
            <info>Dit dyr har det fint</info>
        </happy>
        <happy type="3">
            <info>Dit dyr er syr</info>
        </happy>
    </mood>
</pet>
   


men min kode giver fejl, hvordan kan jeg udtrække spicifikke infoer fra min xml?

f.eks

GetXMood("happy",2); skulle returne "Dit dyr har det fint"
Avatar billede arne_v Ekspert
28. juni 2009 - 20:58 #1
Prøv:

        public string GetXMood(string mood, int type)
        {
            XmlNode x = doc.DocumentElement.SelectSingleNode("//pet/mood/" + mood + "[@type='" + type +" ']/info/text()");
            return x.Value;
        }
Avatar billede droa Novice
28. juni 2009 - 21:12 #2
det var lige det som var fejlen :)
mange tak, arne_v. ligger du et svar?
Avatar billede arne_v Ekspert
28. juni 2009 - 21:15 #3
kommer her
Avatar billede arne_v Ekspert
28. juni 2009 - 21:16 #4
Jeg har lavet 3 ting om:
1) @ foran attribut navn
2) SelectSingleNode fremfor SelectNodes
3) brug af text() i XPath

Kun #1 er nødvendig, men givet koden virkede #2 og #3 også praktiske.
Avatar billede droa Novice
28. juni 2009 - 21:23 #5
ja kunne jeg se, men tror os min fejl kom af, jeg faktisk ikke var helt sikker på hvad jeg prøvede og få fat i, da jeg tror det var min adressering der var fejlen, og ikke koden, siden det er din kode, jeg nærmest talt bare havde Copy/Pasted, skulle den meget gerne have virket, det var nemlig derfor jeg tror det var adresseringen, jeg havde fejlet med
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