Проблема пространства имен Linq - PullRequest
1 голос
/ 02 ноября 2009

Кажется, я могу получить какие-либо записи из следующего XML.

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

Если я уберу вышеупомянутое, это работает

  <?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
<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 Ответ

2 голосов
/ 02 ноября 2009

Ваш код отлично работает для меня:

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());
    }
}

(Я удалил выражение запроса, потому что оно ничего не делало, но и раньше работало).

Это просто с test.xml, установленным на XML, который вы указали в вопросе.

Если вы печатаете feed с ошибочным кодом, что вы видите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...