如何使用XDocument获取此XML文件中的某个值?
问题描述:
<item>
<title>Lorem Ipsum</title>
<media:group>
<media:content url = "http://www.sample.com" rate = "0" />
<media:content url = "http://www.sample1.com" rate = "1" />
<media:content url = "http://www.sample2.com" rate = "2" />
</media:group>
</item>
我如何得到这个值:如何使用XDocument获取此XML文件中的某个值?
我尝试使用此代码:
var query = from i in loadedData.Descendants("item")
select new Site
{
Title = (string)i.Element("title"),
Url = (string)i.Element(serv + "group").Elements(media + "content").Last()
};
site = query.ToList();
,但URL的值是 “”。 我也有这样的:
private static readonly XNamespace media = "http://www.sampleX.com/";
答
您可以使用此LINQ查询:
var list = loadedData.Descendants("item")
.Select(e => new Site()
{
Title = e.Element("title")
.Value,
Url = e.Descendants(media + "content")
.Last()
.Attribute("url")
.Value
})
.ToList();
尝试'URL =(字符串)i.Element(SERV + “集团”)的元素(媒体+ “content”)。Last()。Attribute(“url”)。Value;' – Willem 2012-07-18 16:05:22
Thanks Willem!奇迹般有效! :) – 2012-07-18 16:44:14
它如何匹配名称空间而不在xmlns:media =“http://www.sampleX.com/”属性中声明XML中的任何位置?它是否在你没有展示的元素上声明? – JamieSee 2012-07-18 16:44:57