XElement не будет возвращать медиа: content / xmlns: медиа ломает XElement - PullRequest
2 голосов
/ 15 января 2011

Вот мой пример xml:

<rss version='2.0' xmlns:media='http://search.yahoo.com/mrss/'> 
<channel> 
    <title>Title of RSS feed</title> 
    <link>LINK</link> 
    <description>Details about the feed</description> 
    <language>en</language> 
    <item>
      <title>TITLE</title>
      <media:content url='http://LINK' type='' xmlns:media='http://search.yahoo.com/mrss' />
    </item>
</channel>
</rss>

Мой код:

XElement rss = XElement.Parse(xml);
XNamespace media = "http://search.yahoo.com/mrss/";

var item = rss.Element("channel").Elements("item").First();
var mediaa = item.Element(media + "content"); //this part doesn't work as expected
var url = mediaa.Attribute("url");

похоже, что часть "xmlns:media='http://search.yahoo.com/mrss'" тега media:content ломает .Element(media + "content"). (Не могу сменить подачу)

Ответы [ 3 ]

0 голосов
/ 15 января 2011

Неправильное пространство имен.Там нет "/" в конце.

0 голосов
/ 15 января 2011

Это должно работать:

XNamespace media = XNamespace.Get("http://search.yahoo.com/mrss/");

Также обратите внимание, что вы должны исправить это в медиа: элемент контента, он должен сказать

  <media:content url='http://LINK' type='' xmlns:media='http://search.yahoo.com/mrss/'/>
0 голосов
/ 15 января 2011

Должно ли это быть

XNamespace media = "{http://search.yahoo.com/mrss/}";

то есть с фигурными скобками?

...