省市区数据文件存合适吗

省市区数据文件存合适吗,第1张

保存省市区数据文件是一种常见的做法,因为在很多应用程序或者网站中都需要用到省市区数据。一般情况下,将省市区数据保存至文件中是比较合适的,因为这样能够方便地进行数据管理和维护,并且可以降低程序的复杂度。

保存省市区数据文件的形式可以是文本文件、XML文件、JSON文件等。其中,文本文件的格式比较简单,容易处理,但是不太方便跨平台传输;XML文件适合结构比较复杂的数据类型,但是文件比较大;JSON文件则是一种轻量级的数据格式,适合于简单的数据类型。

当然,如果你的应用程序或者网站中需要提供实时的省市区数据,则可以考虑将数据存储在数据库中,并提供相应的接口供程序或者网站访问。这样做的好处是能够避免数据冗余,提供更加灵活和高效的数据 *** 作方式。

<national>

<province name="河北省">

<city name="石家庄市">

<county name="XX县" />

<county name="XX县" />

<county name="XX县" />

</city>

<city name="保定市">

<county name="XX县" />

<county name="XX县" />

</city>

</province>

<province name="山东省">

<city name="济南市">

<county name="XX县" />

<county name="XX县" />

<county name="XX县" />

</city>

<city name="青岛市">

<county name="XX县" />

<county name="XX县" />

</city>

</province>

</national>

省 市 县 三级下拉框联动,第一个下拉框填充省,第二个填充市,第三个填充县,当选择省时,第二个下拉框根据所选择的省在xml文件里查询出当前省所属的市,默认选择第一个市,第三个下拉框填充当前市所属的县。

取xml节点的方法:

XmlDocument xmlDoc = new XmlDocument()

xmlDoc.Load(strXmlPath)//加载xml

XmlNode xn = xmlDoc.SelectSingleNode(strSingNode)//选择节点

XmlNodeList xnl = xn.ChildNodes

遍历xnl即可得到所有xn的子节点。

using System

using System.Collections.Generic

using System.Linq

using System.Text

using System.Xml

namespace WebSiteAssistant

{

    public class CityDropdown

    {

        public List<City> GetCityInfo(XmlNodeList nodeList)

        {

            List<City> cityList = new List<City>()

            for (int i = 0 i < nodeList.Count i++)

            {

                XmlNode node = nodeList.Item(i)

                City ct = new City()

                foreach (XmlAttribute att in node.Attributes)

                {

                    int findID = att.Name.IndexOf("ID")

                    if (findID > 1)

                    {

                        ct.CityID = att.Value

                    }

                    else if (findID < 0)

                    {

                        ct.CityName = att.Value

                    }

                }

                cityList.Add(ct)

            }

            return cityList

        }

        public XmlNodeList GetNode(XmlDataDocument xmlCity, int Level, string cityID)

        {

            //省

            if (Level == 1)

                return xmlCity.ChildNodes[0].ChildNodes

            //省下县

            if (Level == 2)

            {

                for (int i = 0 i < xmlCity.ChildNodes[0].ChildNodes.Count i++)

                {

                    foreach (XmlAttribute att in xmlCity.ChildNodes[0].ChildNodes[i].Attributes)

                    {

                        int findID = att.Name.IndexOf("ID")

                        if (findID > 1 && att.Value == cityID)

                        {

                            return xmlCity.ChildNodes[0].ChildNodes[i].ChildNodes

                        }

                    }

                }

            }

            //县下区

            if (Level == 3)

            {

                for (int i = 0 i < xmlCity.ChildNodes[0].ChildNodes.Count i++)

                {

                    for (int j = 0 j < xmlCity.ChildNodes[0].ChildNodes[i].ChildNodes.Count j++)

                    {

                        foreach (XmlAttribute att in xmlCity.ChildNodes[0].ChildNodes[i].ChildNodes[j].Attributes)

                        {

                            int findID = att.Name.IndexOf("ID")

                            if (findID > 1 && att.Value == cityID)

                            {

                                return xmlCity.ChildNodes[0].ChildNodes[i].ChildNodes[j].ChildNodes

                            }

                        }

                    }

                }

            }

            return null

        }

    }

    public class TestCity

    {

        static void Main(string[] args)

        {

            try

            {

                XmlDataDocument xmlCity = new XmlDataDocument()

                xmlCity.Load(@"..\..\City.xml")

                CityDropdown dorpDown = new CityDropdown()

                //取省

                XmlNodeList levelNode1 = dorpDown.GetNode(xmlCity, 1, "")

                List<City> city1 = new List<City>()

                city1 = dorpDown.GetCityInfo(levelNode1)

                Console.WriteLine(city1.Count)

                //取省的下一级

                XmlNodeList levelNode2 = dorpDown.GetNode(xmlCity, 2, "110000")

                List<City> city2 = new List<City>()

                city2 = dorpDown.GetCityInfo(levelNode2)

                Console.WriteLine(city2.Count)

                //取县的详情

                XmlNodeList levelNode3 = dorpDown.GetNode(xmlCity, 3, "110100")

                List<City> city3 = new List<City>()

                city3 = dorpDown.GetCityInfo(levelNode3)

                Console.WriteLine(city3.Count)

            }

            catch (Exception ex)

            {

                ex.ToString()

                Console.WriteLine(ex.ToString())

            }

            Console.Read()

        }

    }

    public class City

    {

        private string _cityID

        /// <summary>

        /// 编号

        /// </summary>

        public string CityID

        {

            get { return _cityID }

            set { _cityID = value }

        }

        private string _cityName

        /// <summary>

        /// 名称

        /// </summary>

        public string CityName

        {

            get { return _cityName }

            set { _cityName = value }

        }

    }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11720807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存