• 使用XmlDocument中的XmlElement遍历xml文档


    xml文件各个层次的节点名称都一样,所以不能使用DataSet.ReadXml来加载,必须使用XmlDocument对象:
    代码
    <?xml version='1.0' encoding='UTF-8'?>
     
    <Value>
       
    <Value nodename="北京市" nodeid="110000">
         
    <Value nodename="市辖区" nodeid="110100">
           
    <Value nodename="东城区" nodeid="110101" />
           
    <Value nodename="怀柔区" nodeid="110116" />
           
    <Value nodename="平谷区" nodeid="110117" />
        
    </Value>
         
    <Value nodename="县" nodeid="110200">
           
    <Value nodename="密云县" nodeid="110228" />
           
    <Value nodename="延庆县" nodeid="110229" />
        
    </Value>
      
    </Value>
       
    <Value nodename="天津市" nodeid="120000">
         
    <Value nodename="市辖区" nodeid="120100">
           
    <Value nodename="和平区" nodeid="120101" />
           
    <Value nodename="河东区" nodeid="120102" />
           
    <Value nodename="河西区" nodeid="120103" />
           
    <Value nodename="宝坻区" nodeid="120115" />
         
    </Value>
         
    <Value nodename="县" nodeid="120200">
           
    <Value nodename="宁河县" nodeid="120221" />
           
    <Value nodename="静海县" nodeid="120223" />
           
    <Value nodename="蓟 县" nodeid="120225" />
        
    </Value>
      
    </Value>
       
    <Value nodename="河北省" nodeid="130000">
         
    <Value nodename="石家庄市" nodeid="130100">
           
    <Value nodename="市辖区" nodeid="130101" />
           
    <Value nodename="新华区" nodeid="130105" />
         
    </Value>
      
    </Value>
    </Value>

    aspx.cs,转换成符合逻辑层次标准的xml文档

    代码
            string str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";

            str 
    += "<item>";

            XmlDocument xmldc 
    = new XmlDocument();
            xmldc.Load(Server.MapPath(
    "XMLFile.xml"));

            XmlElement el 
    = xmldc.DocumentElement;

            
    for (int i = 0; i < el.ChildNodes.Count; i++)
            {
                XmlNode nodeProvince 
    = el.ChildNodes[i];
                
    string province = nodeProvince.Attributes["nodename"].Value;
                
    string provinceID = nodeProvince.Attributes["nodeid"].Value;

                str 
    += "<province name=\"" + province + "\" id=\"" + provinceID + "\">";

                
    for (int j = 0; j < el.ChildNodes[i].ChildNodes.Count; j++)
                {
                    XmlNode nodeCity 
    = el.ChildNodes[i].ChildNodes[j];
                    
    string city = nodeCity.Attributes["nodename"].Value;
                    
    string cityID = nodeCity.Attributes["nodeid"].Value;

                    str 
    += "<city name=\"" + city + "\" id=\"" + cityID + "\" provinceID=\"" + provinceID + "\">";

                    
    for (int k = 0; k < el.ChildNodes[i].ChildNodes[j].ChildNodes.Count; k++)
                    {
                        XmlNode nodedistrinct 
    = el.ChildNodes[i].ChildNodes[j].ChildNodes[k];
                        
    string distrinct = nodedistrinct.Attributes["nodename"].Value;
                        
    string distrinctID = nodedistrinct.Attributes["nodeid"].Value;

                        str 
    += "<distrinct name=\"" + distrinct + "\" distrinctID=\"" + distrinctID + "\" cityID=\"" + cityID + "\" provinceID=\"" + provinceID + "\" />";

                    }

                    str 
    += "</city>";
                }

                str 
    += "</province>";
            }


            str 
    += "</item>";

            Response.Write(str);
  • 相关阅读:
    C++输入cout与输出cin
    golang学习笔记
    vscode环境配置
    golang 微框架 gin
    git go使用socket5代理
    go包管理工具glide
    collectd的python插件(redis)
    zookeeper & kafka 集群
    redis复制集(sentinel)
    python加解密
  • 原文地址:https://www.cnblogs.com/timy/p/1760140.html
Copyright © 2020-2023  润新知