views:

62

answers:

1

I can seem to get any records from the following xml.

xmlns="http://www.w3.org/2005/Atom"

If i remove the above it works

  <?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"&gt;
<entry><id><![CDATA[text]]></id><
author><name><![CDATA[film24]]></name></author><title><![CDATA[text]]></title>
<updated>2009-10-30T15:55:13+00:00</updated><published>2009-10-30T00:00:00+00:00</published>
<media:thumbnail type="image/jpeg" title="thumbnail" url=""/>
<media:content type="video/flv" title="video" url="" expression="high"/>
<media:content type="video/flv" title="video" url="" expression="low"/>
</entry>
</feed> 





//My linq 
        XNamespace nsAtom = "http://www.w3.org/2005/Atom";

        string url = HttpContext.Current.Server.MapPath(ConfigHelper.GetValue("FeedUri"));
        var feed = XElement.Load(url); 
        var query = from c in feed.Descendants(nsAtom + "entry")
        select c;
        return query.Count(); // always returns o
+1  A: 

Your code works fine for me:

using System;
using System.Collections.Generic;
using System.Xml.Linq;
using System.Linq;

class Test    
{    
    static void Main()
    {
        XNamespace nsAtom = "http://www.w3.org/2005/Atom";
        var feed = XElement.Load("test.xml");
        Console.WriteLine(feed.Descendants(nsAtom + "entry").Count());
    }
}

(I've removed the query expression because it wasn't doing anything, but it worked before then too.)

That's just with test.xml set to the XML you've shown in the question.

If you print out feed with your failing code, what do you see?

Jon Skeet