C# TreeView绑定Xml

Seven丨 2013-09-11 04:21:04
下面是xml文件,想在图中的电影名称下继续追加子节点,只添加time属性的值,努力了很久。。还是未能实现,求大神指点~~

<?xml version="1.0" encoding="utf-8" ?>
<schedules>
<schedule date="2013-9-12" time="9:00、13:00" movie="非常完美" room="一号放映厅、二号放映厅"/>
<schedule date="2013-9-12" time="11:20、15:45、19:25" movie="风声" room="一号放映厅、二号放映厅、3D"/>
<schedule date="2013-9-12" time="21:00、23:10" movie="窃听风云" room="一号放映厅、二号放映厅"/>
<schedule date="2013-9-12" time="17:30" movie="非诚勿扰" room="一号放映厅、二号放映厅"/>
</schedules>
...全文
369 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 25 楼 yyantifa 的回复:
[quote=引用 24 楼 liuquanel5 的回复:] [quote=引用 22 楼 yyantifa 的回复:] [quote=引用 20 楼 liuquanel5 的回复:] [quote=引用 18 楼 gods_kiss 的回复:]
混积分?[/quote] 谁想来混积分啊。北大青鸟教出来的人。。[/quote] 大哥,你这不厚道 = = ,虽然只是个做培训的,但也有努力的学生[/quote] 问题是没有看见你努力啊。。昨天的帖子今天都没有搞定。 去培训连最基本的需要学习一下吧。。。 都知道不进foreach这个循环,却不知道为什么不进。。[/quote] 嗯。。都学了一年了,确实没怎么努力。。只剩下半年就毕业了才想学。。。总之这半年会努力的
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
引用 24 楼 liuquanel5 的回复:
[quote=引用 22 楼 yyantifa 的回复:] [quote=引用 20 楼 liuquanel5 的回复:] [quote=引用 18 楼 gods_kiss 的回复:]
混积分?[/quote] 谁想来混积分啊。北大青鸟教出来的人。。[/quote] 大哥,你这不厚道 = = ,虽然只是个做培训的,但也有努力的学生[/quote] 问题是没有看见你努力啊。。昨天的帖子今天都没有搞定。 去培训连最基本的需要学习一下吧。。。 都知道不进foreach这个循环,却不知道为什么不进。。
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 22 楼 yyantifa 的回复:
[quote=引用 20 楼 liuquanel5 的回复:] [quote=引用 18 楼 gods_kiss 的回复:]
混积分?[/quote] 谁想来混积分啊。北大青鸟教出来的人。。[/quote] 大哥,你这不厚道 = = ,虽然只是个做培训的,但也有努力的学生
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 21 楼 yyantifa 的回复:
[quote=引用 19 楼 liuquanel5 的回复:] [quote=引用 17 楼 yyantifa 的回复:] [quote=引用 16 楼 liuquanel5 的回复:] [quote=引用 15 楼 yyantifa 的回复:] [quote=引用 14 楼 liuquanel5 的回复:] [quote=引用 13 楼 yyantifa 的回复:] ... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
那我要怎么做[/quote] 你先告诉我,你的treeview那上面有 (非常完美,风声等等)这些节点吗???[/quote] 木有。。。[/quote] 这些哪里来的??[/quote] 这是之前写的是我没能将time的值添加到movie这属性的节点下,所以只出了movie这节点[/quote] 那不是更简单吗?先绑定节点,再绑定子节点就好了。。

            XElement element = XElement.Load(@"C:\abc.xml");
            var query = from n in element.Descendants()
                        select new { XName = n.Attribute("movie"), XTime = n.Attribute("time") };

            foreach (var q in query)
            {
                TreeNode node = new TreeNode(q.XName.Value);
                foreach (string s in q.XTime.Value.Split('、').Select(x => x).ToArray())
                {
                    TreeNode nodeChild = new TreeNode(s);
                    node.Nodes.Add(nodeChild);
                }
                treeView1.Nodes.Add(node);
            }
            treeView1.ExpandAll();
[/quote] 粗来了,大哥好人,大哥一生平安。。
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
引用 20 楼 liuquanel5 的回复:
[quote=引用 18 楼 gods_kiss 的回复:]
混积分?[/quote] 谁想来混积分啊。北大青鸟教出来的人。。
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
引用 19 楼 liuquanel5 的回复:
[quote=引用 17 楼 yyantifa 的回复:] [quote=引用 16 楼 liuquanel5 的回复:] [quote=引用 15 楼 yyantifa 的回复:] [quote=引用 14 楼 liuquanel5 的回复:] [quote=引用 13 楼 yyantifa 的回复:] ... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
那我要怎么做[/quote] 你先告诉我,你的treeview那上面有 (非常完美,风声等等)这些节点吗???[/quote] 木有。。。[/quote] 这些哪里来的??[/quote] 这是之前写的是我没能将time的值添加到movie这属性的节点下,所以只出了movie这节点[/quote] 那不是更简单吗?先绑定节点,再绑定子节点就好了。。

            XElement element = XElement.Load(@"C:\abc.xml");
            var query = from n in element.Descendants()
                        select new { XName = n.Attribute("movie"), XTime = n.Attribute("time") };

            foreach (var q in query)
            {
                TreeNode node = new TreeNode(q.XName.Value);
                foreach (string s in q.XTime.Value.Split('、').Select(x => x).ToArray())
                {
                    TreeNode nodeChild = new TreeNode(s);
                    node.Nodes.Add(nodeChild);
                }
                treeView1.Nodes.Add(node);
            }
            treeView1.ExpandAll();
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 18 楼 gods_kiss 的回复:
混积分?
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 17 楼 yyantifa 的回复:
[quote=引用 16 楼 liuquanel5 的回复:] [quote=引用 15 楼 yyantifa 的回复:] [quote=引用 14 楼 liuquanel5 的回复:] [quote=引用 13 楼 yyantifa 的回复:] ... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
那我要怎么做[/quote] 你先告诉我,你的treeview那上面有 (非常完美,风声等等)这些节点吗???[/quote] 木有。。。[/quote] 这些哪里来的??[/quote] 这是之前写的是我没能将time的值添加到movie这属性的节点下,所以只出了movie这节点
gods_kiss 2013-09-12
  • 打赏
  • 举报
回复
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
引用 16 楼 liuquanel5 的回复:
[quote=引用 15 楼 yyantifa 的回复:]
[quote=引用 14 楼 liuquanel5 的回复:]
[quote=引用 13 楼 yyantifa 的回复:]
...
treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。


那我要怎么做[/quote]

你先告诉我,你的treeview那上面有 (非常完美,风声等等)这些节点吗???[/quote]

木有。。。[/quote]



这些哪里来的??
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 15 楼 yyantifa 的回复:
[quote=引用 14 楼 liuquanel5 的回复:] [quote=引用 13 楼 yyantifa 的回复:] ... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
那我要怎么做[/quote] 你先告诉我,你的treeview那上面有 (非常完美,风声等等)这些节点吗???[/quote] 木有。。。
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
引用 14 楼 liuquanel5 的回复:
[quote=引用 13 楼 yyantifa 的回复:] ... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
那我要怎么做[/quote] 你先告诉我,你的treeview那上面有 (非常完美,风声等等)这些节点吗???
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 13 楼 yyantifa 的回复:
... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
那我要怎么做
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
... treeview1.noeds 你连这个节点集合数据都没有。当然不会foreach了。
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 9 楼 yyantifa 的回复:
[quote=引用 7 楼 liuquanel5 的回复:] [quote=引用 6 楼 liuquanel5 的回复:] [quote=引用 5 楼 yyantifa 的回复:] [quote=引用 3 楼 liuquanel5 的回复:] [quote=引用 2 楼 yyantifa 的回复:] 参考一下:
 XElement element = XElement.Load(@"C:\abc.xml");
            var query = from n in element.Descendants()
                        select new { XName = n.Attribute("movie"), XTime = n.Attribute("time") };
            foreach (TreeNode node in treeView1.Nodes)
            {
                string nodeName = node.Text;
                foreach (var q in query)
                {
                    if (q.XName.Value == nodeName)
                    {
                        foreach (string s in q.XTime.Value.Split('、').Select(x => x).ToArray())
                        {
                            node.Nodes.Add(s);
                        }
                    }
                }
            }
为什么我复制上去没出效果?[/quote] 我没有问题啊。 [/quote] 我发现重新编译时输出:生成: 成功 0 个,失败 0 个,最新 1 个,跳过 0 个 是哪出问题了么。。[/quote] 我重新弄了一干净的项目,单纯测试这次的代码。。依然不行。。[/quote] XML是否在C盘根目录下,是否叫abc.xml。是否引用了using System.Xml.Linq;,是否断点调试过程序的每一步,观察一下哪里出问题了?[/quote] 哥。。都检查过了,断点调试时发现没进第一个foreach循环,这说明我的TreeView是空的。。。但是事实上的确是空的。。
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 8 楼 qq873113580 的回复:
咳咳,貌似是北大青鸟的学弟Or学妹?? 读取XML的资料 http://kb.cnblogs.com/page/42226/ ACCP6.0所有课程代码及答案 http://blog.csdn.net/qq873113580/article/details/10604337
大哥·你也是北大青鸟的?能帮我看下问题不,我用了2楼的方法···我的不出效果,2楼的粗了。。
yyantifa 2013-09-12
  • 打赏
  • 举报
回复
引用 7 楼 liuquanel5 的回复:
[quote=引用 6 楼 liuquanel5 的回复:] [quote=引用 5 楼 yyantifa 的回复:] [quote=引用 3 楼 liuquanel5 的回复:] [quote=引用 2 楼 yyantifa 的回复:] 参考一下:
 XElement element = XElement.Load(@"C:\abc.xml");
            var query = from n in element.Descendants()
                        select new { XName = n.Attribute("movie"), XTime = n.Attribute("time") };
            foreach (TreeNode node in treeView1.Nodes)
            {
                string nodeName = node.Text;
                foreach (var q in query)
                {
                    if (q.XName.Value == nodeName)
                    {
                        foreach (string s in q.XTime.Value.Split('、').Select(x => x).ToArray())
                        {
                            node.Nodes.Add(s);
                        }
                    }
                }
            }
为什么我复制上去没出效果?[/quote] 我没有问题啊。 [/quote] 我发现重新编译时输出:生成: 成功 0 个,失败 0 个,最新 1 个,跳过 0 个 是哪出问题了么。。[/quote] 我重新弄了一干净的项目,单纯测试这次的代码。。依然不行。。[/quote] XML是否在C盘根目录下,是否叫abc.xml。是否引用了using System.Xml.Linq;,是否断点调试过程序的每一步,观察一下哪里出问题了?
Teln_小凯 2013-09-12
  • 打赏
  • 举报
回复
咳咳,貌似是北大青鸟的学弟Or学妹?? 读取XML的资料 http://kb.cnblogs.com/page/42226/ ACCP6.0所有课程代码及答案 http://blog.csdn.net/qq873113580/article/details/10604337
Seven丨 2013-09-12
  • 打赏
  • 举报
回复
引用 6 楼 liuquanel5 的回复:
[quote=引用 5 楼 yyantifa 的回复:] [quote=引用 3 楼 liuquanel5 的回复:] [quote=引用 2 楼 yyantifa 的回复:] 参考一下:
 XElement element = XElement.Load(@"C:\abc.xml");
            var query = from n in element.Descendants()
                        select new { XName = n.Attribute("movie"), XTime = n.Attribute("time") };
            foreach (TreeNode node in treeView1.Nodes)
            {
                string nodeName = node.Text;
                foreach (var q in query)
                {
                    if (q.XName.Value == nodeName)
                    {
                        foreach (string s in q.XTime.Value.Split('、').Select(x => x).ToArray())
                        {
                            node.Nodes.Add(s);
                        }
                    }
                }
            }
为什么我复制上去没出效果?[/quote] 我没有问题啊。 [/quote] 我发现重新编译时输出:生成: 成功 0 个,失败 0 个,最新 1 个,跳过 0 个 是哪出问题了么。。[/quote] 我重新弄了一干净的项目,单纯测试这次的代码。。依然不行。。
加载更多回复(6)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧