我想用一个XML文件中的数据填充我的listview,这也是用这个程序生成的。
此代码仅添加XML文件的第一个条目。但为什么呢?
XDocument document = XDocument.Load(@path + projectName + ".xml");
var items = from item in document.Descendants("root")
select new
{
Name = item.Element("Child").Attribute("Name").Value,
time = item.Element("Child").Attribute("time").Value
};
foreach (var item in items)
{
var lvi = activitiesList.Items.Add(item.Name);
lvi.SubItems.Add(item.time);
}
这是我的XML文件
<root>
<Child Name="New Activity" time="20" />
<Child Name="asdf1" time="5" />
<Child Name="g1" time="0" />
</root>
我的Listview应该在两列中显示:
New Activity 20
asdf1 5
g1 0
答案 0 :(得分:1)
问题出在LINQ声明中 - 你只有一个&#34; root&#34;节点,所以对于每个&#34; root&#34;节点(1),得到它&#34;儿童&#34;元素的名称和时间,并将其放入var items
...
试试这个:
var items = from item in document.Root.Elements("Child")
select new
{
Name = item.Attribute("Name").Value,
time = item.Attribute("time").Value
};
答案 1 :(得分:-1)
检查此问题并解答。这似乎回答了你的问题。它指向您的查询不包括“XNamespace”指令。