XElement不会返回任何媒体:content / xmlns:media break XElement

时间:2011-01-15 01:04:11

标签: c# rss xml-namespaces xelement

这是我的示例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")。 (我无法更改Feed)

3 个答案:

答案 0 :(得分:0)

错误的命名空间。最后没有“/”。

答案 1 :(得分:0)

这应该有效:

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

另请注意,您必须在media:content元素中修复它,它应该说

  <media:content url='http://LINK' type='' xmlns:media='http://search.yahoo.com/mrss/'/>

答案 2 :(得分:-1)

应该是

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

即花括号?