C#:从XML文档填充Listview

时间:2014-06-09 15:09:02

标签: c# xml listview

我想用一个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

2 个答案:

答案 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”指令。

Selecting elements from XML file using LINQ