我如何从xml文件中获取这个值?
本文关键字:获取 文件 xml | 更新日期: 2023-09-27 18:16:20
这是xml:
<item>
<title>El Reno Tornado 5.31.13</title>
<pubDate>Sat, 01 Jun 2013 14:01:12 -0400</pubDate>
<link>http://url.com</link>
<dc:creator>plankbone</dc:creator>
<description>Chase video next to this monster tornado in El Reno Oklahoma. Check out the people driving on the wrong side of the road to escape it's path!</description>
<guid>id</guid>
<enclosure type="application/x-shockwave-flash" url="http://www.url.com" />
<media:content>
<media:player url="http://www.url.com" />
<media:credit role="author" scheme="http://www.ur.com">plankbone</media:credit>
<media:thumbnail url="http://url.com/80281E/u/u/thumbs/2013/Jun/1/5a1ee391e2dd_thumb_2.jpg" width="120" height="90" />
<media:title>El Reno Tornado 5.31.13</media:title>
<media:category label="Tags">el reno tornado, tornadoes, twisters, storm chasing,</media:category>
</media:content>
</item>
下面是我的代码,除了从xml文件中抓取缩略图数据之外,一切都工作。
XNamespace dcM = "http://search.yahoo.com/mrss/";
var xdoc = XDocument.Load(url);
var items = xdoc.Descendants("item")
.Select(item => new
{
Title = item.Element("title").Value,
Description = item.Element("description").Value,
Link = item.Element("link").Value,
PubDate = item.Element("pubDate").Value,
MyImage = (string)item.Elements(dcM + "content")
.Select(i=> i.Elements(dcM + "thumbnail"))
.Select(i => i.Attribute("url").Value)
.SingleOrDefault()
})
.ToList();
由于某些原因,我无法从xml中获取值。
任何形式的帮助都是感激的。
如果元素(content)中没有另一个元素(thumbnail),下面是一个工作的例子:
假设xml代码是:
<media:thumbnail url="http://ur.com/bla.jpg" />
可以:
MyImage = (string)item.Elements(dcM + "thumbnail")
.Select(i => i.Attribute("url").Value)
.SingleOrDefault()
我觉得应该是
MyImage = item.Element(dcM + "content")
.Element(dcM + "thumbnail")
.Attribute("url").Value
您可以尝试使用这种方式
XmlDocument doc = new XmlDocument();
doc.Load(url);
XmlNodeList elemList = doc.GetElementsByTagName("media:player");
for (int i = 0; i < elemList.Count; i++)
{
string attrVal = elemList[i].Attributes["url"].Value;
}