Avatar billede badal Nybegynder
18. januar 2005 - 10:43 Der er 9 kommentarer og
1 løsning

Læse Xml document

Jeg har en Xml dokument som nedenstående og jeg skal have fat i værdierne lastestnews:

<?xml version='1.0'?>
<worldnews>
    <newsdoc>
        <latestnews id="1000" name="indland">
            <news ID="1" name="oliefund" title="dd">s
            </news>
            <news ID="2" name="herere" title="sss">
            </news>
        </latestnews>
        <latestnews id="2000" name="indland">
            <news ID="4" name="dfdf" title="dfdd">
            </news>
            <news ID="6" name="dfdfd" title="dfsss">
            </news>
        </latestnews>
    </newsdoc>
</worldnews>

Følgnede funktion forsøger at hente værdien men den virker ikke. Se i funktion hvad jeg ønsker at hente frem

public void Load_xml()
        {
            string result = "";
            try
            {
                XmlDocument objXMLdoc = new XmlDocument();
                objXMLdoc.Load(document);

                XmlNodeList nodeList;
                XmlElement root = objXMLdoc.DocumentElement;
                nodeList = root.SelectNodes("//worldnews/newsdoc/latestnews");

                foreach (XmlNode latestnews in nodeList)
                {
                    //får fat i værdien <latestnews id="1000" name="indland">
                    // <latestnews id="2000" name="udland">
                    Console.WriteLine(id.Value); //id
                    Console.WriteLine(name.Value); //name
                }
            }
            catch (Exception t)
            {
                Console.WriteLine(t.ToString());
            }
        }
Avatar billede arne_v Ekspert
18. januar 2005 - 10:57 #1
foreach (XmlNode latestnews in nodeList)
                {
                    XmlAttribute id = latestnews.Attributes["id"];
                    XmlAttribute name = latestnews.Attributes["name"];
                    Console.WriteLine(id.Value);
                    Console.WriteLine(name.Value);
                }
Avatar billede badal Nybegynder
18. januar 2005 - 12:37 #2
takker det virkede... Hvis jeg nu skal hente alle news elementer hvor "latestnews id=1000"?? hvordan henter man dem så ??
Avatar billede arne_v Ekspert
18. januar 2005 - 12:46 #3
Prøv:

nodeList = root.SelectNodes("//worldnews/newsdoc/latestnews[@id='1000'");
Avatar billede arne_v Ekspert
18. januar 2005 - 12:46 #4
Hov:

nodeList = root.SelectNodes("//worldnews/newsdoc/latestnews[@id='1000']");
Avatar billede arne_v Ekspert
18. januar 2005 - 12:46 #5
og et svar
Avatar billede badal Nybegynder
18. januar 2005 - 12:52 #6
Mangler lige det sidste inden du får pointene.
Med nodeList = root.SelectNodes("//worldnews/newsdoc/latestnews[@id='1000']");
er den i den rigtige element.

Men når jeg udskriver så udskriver den værdien id="1000" name="indland" fra latestnews.Men det er værdien fra news jeg er interesseret i.

foreach (XmlNode latestnews in nodeList)
                {
                    XmlAttribute id = latestnews.Attributes["id"];
                    XmlAttribute name = latestnews.Attributes["name"];
                    Console.WriteLine(id.Value);
                    Console.WriteLine(name.Value);
                }
Avatar billede arne_v Ekspert
18. januar 2005 - 12:59 #7
Hm.

Hvordan vender vi lige den.

Prøv:

nodeList = root.SelectNodes("//worldnews/newsdoc/latestnews[@id='1000']/news");
Avatar billede arne_v Ekspert
18. januar 2005 - 13:00 #8
Ellers kan du lave en:

XmlNodeList newses = latestnews..SelectNodes("news");

inden i den eksistende for løkke og så putte en ny for løkke inden i.
Avatar billede badal Nybegynder
18. januar 2005 - 13:01 #9
Det er bare perfekt...:)
Avatar billede badal Nybegynder
18. januar 2005 - 13:02 #10
den her løsning virkede:
nodeList = root.SelectNodes("//worldnews/newsdoc/latestnews[@id='1000']/news");
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