http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 3970|回复: 6

[毕业生提问] xml的问题

[复制链接]
发表于 2015-7-6 23:35:06 | 显示全部楼层 |阅读模式
1金钱
我想获得每个节点及其子结点下的symbolName的属性值,但是遍历的时候board后面的结点遍历不出来;但是把board去掉,剩下的结点就能遍历出来……请帮忙解答一下!(xml结构和代码如下)public void GetNode(XmlDocument objXmlDoc, int i, List<string> list)
        {
            int t = 1;
            XmlNode root = objXmlDoc.DocumentElement;
            DataRow dr1 = dt.NewRow();
            XmlElement xn1 = (XmlElement)root.ChildNodes[0];
            dr1["OID"] = list[i];
            dr1["SubID"] = t;
            dr1["SymbolName"] = xn1.GetAttribute("SymbolName");
            dt.Rows.Add(dr1);
            foreach (XmlNode xmlNode in root.ChildNodes)
            {

                    foreach (XmlNode xmlElement in xmlNode.ChildNodes)
                    {
                            DataRow dr = dt.NewRow();
                            XmlElement xn = (XmlElement)xmlElement;
                            dr["SymbolName"] = xn.GetAttribute("SymbolName");
                            dr["OID"] = list[i];
                            dr["SubID"] = t + 1;
                            dt.Rows.Add(dr);
                            t++;

                    }


            }
        }



结构

结构


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-7-7 08:14:13 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2015-7-7 09:47:53 | 显示全部楼层
站长苏飞 发表于 2015-7-7 08:14
http://www.sufeinet.com/thread-2014-1-1.html

解决不了啊……  不知道为什么board后面的解析不出来
回复

使用道具 举报

发表于 2015-7-7 10:17:24 | 显示全部楼层
用我发给你的方法,不要用循环使用递归
回复

使用道具 举报

 楼主| 发表于 2015-7-7 12:52:04 | 显示全部楼层
站长苏飞 发表于 2015-7-7 10:17
用我发给你的方法,不要用循环使用递归

递归也木有解决,崩溃……
回复

使用道具 举报

发表于 2015-7-7 13:08:44 | 显示全部楼层
不可能吧,怎么写的代码
回复

使用道具 举报

 楼主| 发表于 2015-7-7 13:14:12 | 显示全部楼层
站长苏飞 发表于 2015-7-7 13:08
不可能吧,怎么写的代码

跟之前的问题一样,估计是代码有问题 你给看看
public void GetXMLNodes(XmlNode xmlNode, int t, List<string> list)
        {
            foreach (XmlNode node in xmlNode.ChildNodes)
            {
                DataRow dr = dt.NewRow();
                if (!node.Name.Equals("Symbol"))
                {
                    //跳过board
                }
                else
                {
                    dr["SymbolName"] = node.Attributes["SymbolName"].Value;
                    dr["OID"] = list[t - 1];
                    dr["SubID"] = t + 1;
                    dt.Rows.Add(dr);
                    t++;
                    GetXMLNodes(node, t, list);
                }

            }
        }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-4-28 12:52

© 2014-2021

快速回复 返回顶部 返回列表