我正在尝试使用以下xml填充数组:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<data>
<item>
<date>1307018090</date>
<price>10.4718867</price>
<low>10.38100000</low>
<high>10.49000000</high>
<nicedate>14:39</nicedate>
</item>
<item>
...
</item>
等等
我正在使用这个Linq查询,这意味着它将为每个创建一个对象:
var items = from item in doc.Element("data").Descendants()
select new Currency
{
Close = item.Element("price").Value.ToString(),
Date = item.Element("date").Value.ToString(),
Low = item.Element("low").Value.ToString(),
High = item.Element("high").Value.ToString(),
Time = item.Element("nicedate").Value.ToString()
};
当我通过物品前进时,只有一个物品被选中。我不太习惯Linq,所以我无法弄清楚如何正确构建这个语句。有什么建议吗?
答案 0 :(得分:6)
你需要像这样启动Linq-Xml
var items =
from item in
doc.Element("data")
.Elements("item")
答案 1 :(得分:1)
Descedants()
方法不仅返回子项,还返回了孙子,曾祖母等。因此,LINQ处理的第二个标记是您的第一个<item>
{{1并且它没有被处理(我认为这里应该有一个例外,目前无法检查)。
按照@DaveShaw的建议将<date>
来电替换为Descedants()