Avatar billede starf Nybegynder
17. februar 2012 - 15:26 Der er 10 kommentarer og
1 løsning

hent rss feed elementer.

Jeg forsøger at tilgå et rss feed og gemme elementerne, således jeg kan skrive dem til en fil.

Min kode ser sådan her ud:
http://pastebin.com/7p7XCnKe

og det feed jeg forsøger at tilgå ser sådan her ud:
http://pastebin.com/dxsgrhsj

Når jeg forsøger at køre scriptet, så giver det følge fejl
"Object reference not set to an instance of an object."

Kan ikke lige helt gennemskue hvorfor, går ud fra det har noget med elementerne at gøre?

Det jeg enlig ønsker at gøre, er at gemme "Updated/Tittle/content" fra hver element.
Avatar billede arne_v Ekspert
17. februar 2012 - 16:54 #1
skal

doc.Element("feed").Element(@"title").Elements("entry")

ikke vaere

doc.Element("feed").Element("entry").Elements("title")

?
Avatar billede starf Nybegynder
17. februar 2012 - 18:25 #2
Det giver det samme resultat, desværre.
Avatar billede arne_v Ekspert
17. februar 2012 - 20:55 #3
XNamespace ns = "http://www.w3.org/2005/Atom";
                XDocument doc = XDocument.Parse(downloadString);
                foreach (var item in doc.Element(ns + "feed").Elements(ns + "entry"))
                {
                    string title = item.Element(ns + "title").Value;
                    string summary = item.Element(ns + "summary").Value;
                    string description = item.Element(ns + "content").Value;
                    Console.WriteLine("{0}: \t\t\t {1} \t\t\t {2}", title, summary, description);
                }


virker her
Avatar billede starf Nybegynder
17. februar 2012 - 21:12 #4
jeg får samme fejl? prøv at brug mit rss feed virker det så ved dig?
http://80.161.136.71/Status.rss
Avatar billede arne_v Ekspert
17. februar 2012 - 21:23 #5
Hvordan ser din kode ud nu?
Avatar billede starf Nybegynder
17. februar 2012 - 21:46 #6
Den ser sådan her ud

http://pastebin.com/wecVa6Ht
Avatar billede arne_v Ekspert
17. februar 2012 - 22:47 #7
XNamespace ns = "http://80.161.136.71/Status.rss";

er forkert.

Det skal vaere http://www.w3.org/2005/Atom
Avatar billede starf Nybegynder
17. februar 2012 - 23:54 #8
Ah på den måde...

Det virker som det skal nu, mange tak. Smid endelig et svar :)
Avatar billede arne_v Ekspert
18. februar 2012 - 00:01 #9
svar
Avatar billede mikalj Nybegynder
22. februar 2012 - 13:36 #10
Et lille tip. XmlDocument har en metode til at læse xml direkte fra en url, uden at skulle skrive til disken først eller oprette. Og så synes jeg personligt x-path gør koden langt mere læselig når man skal slå op i xml.

XmlDocument xmldoc = new XmlDocument();
xmldoc.Load("http://dreamreef.dk/Status.rss");
XmlNodeList items = xmldoc.SelectNodes("//entry");
foreach(XmlNode item in entries)
{
  string title = item.SelectSingleNode("title").InnerText;
  string summary = item.SelectSingleNode("summary").InnerText;
  string description = item.SelectSingleNode("content").InnerText;
  // do stuff...
}
Avatar billede starf Nybegynder
22. februar 2012 - 13:56 #11
Tak for dit svar, du har ret denne kode er en del mere simpel. Eneste jeg er lidt i tviv er foreach delen.

foreach(XmlNode item in entries)

burde det ikke være noget hen af
foreach (XmlNode item in xmldoc.SelectNodes("\\entry"))
??
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