创建工具类

package com.yzj.util.city;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;/*** 选择地区工具,包含全国各地省级市级* @author LiuJinan**/
public class LocalUtil {//各地区xml文件路径private static final String LOCAL_LIST_PATH = "config/LocList.xml";//所有国家名称Listprivate static final List<String> COUNTRY_REGION = new ArrayList<String>();private static LocalUtil localutil;private SAXReader reader;private Document document;private Element rootElement;        //根元素//初始化private LocalUtil(){//1.读取reader = new SAXReader();try {document = reader.read(LOCAL_LIST_PATH);        } catch (DocumentException e) {e.printStackTrace();}//2.获得根元素rootElement =  document.getRootElement(); //3.初始化所有国家名称列表Iterator it =  rootElement.elementIterator();Element ele = null;while(it.hasNext()){ele = (Element)it.next();COUNTRY_REGION.add(ele.attributeValue("Name"));}}/*** * @author       LiuJinan* @TODO        功能:  获取所有国家名称* @time        2016-8-26 上午9:02:05* @return       String[]*/public List<String> getCountry(){return COUNTRY_REGION;}/*** * @author     LiuJinan* @TODO        功能:  根据国家名获取该国所有省份* @time       2016-8-26 上午9:07:21* @param countryName    国家名,从getCountry()从取出* @return       List<Element>*/private List<Element> provinces(String countryName){Iterator it =  rootElement.elementIterator();List<Element> provinces = new ArrayList<Element>();Element ele = null;while(it.hasNext()){ele = (Element)it.next();COUNTRY_REGION.add(ele.attributeValue("Name"));if(ele.attributeValue("Name").equals(countryName)){provinces = ele.elements();break;}}return provinces;}/*** * @author      LiuJinan* @TODO        功能:  根据国家名获取该国所有省份* @time       2016-8-26 上午9:07:21* @param countryName    国家名,从getCountry()从取出* @return       List<Element>*/public List<String> getProvinces(String countryName){List<Element> tmp = this.provinces(countryName);List<String> list = new ArrayList<String>();for(int i=0; i<tmp.size(); i++){list.add(tmp.get(i).attributeValue("Name"));}return list;}/*** * @author       LiuJinan* @TODO        功能:根据国家名和省份名,获取该省城市名列表* @time        2016-8-26 上午9:15:24* @param province* @param provinceName* @return*/private List<Element> cities(String countryName, String provinceName){List<Element> provinces =  this.provinces(countryName);List<Element> cities = new ArrayList<Element>();if(provinces==null || provinces.size()==0){       //没有这个城市return cities;}for(int i=0; i<provinces.size(); i++){if(provinces.get(i).attributeValue("Name").equals(provinceName)){cities = provinces.get(i).elements();break;}}return cities;}/*** * @author      LiuJinan* @TODO        功能:根据国家名和省份名获取城市列表* @time       2016-8-26 下午4:55:55* @param countryName* @param provinceName* @return        List<String>*/public List<String> getCities(String countryName, String provinceName){List<Element> tmp =  this.cities(countryName, provinceName);List<String> cities = new ArrayList<String>();for(int i=0; i<tmp.size(); i++){cities.add(tmp.get(i).attributeValue("Name"));}return cities;}public static LocalUtil getInstance(){if(localutil==null){localutil = new LocalUtil();}return localutil;}
}

放国家的xml,这个太大了,我目前不知道怎么样上传,有需要的加我QQ1689826485

我这里是放在config下


测试接口

import java.util.List;import com.yzj.util.city.LocalUtil;public class TestLocalUtil {public static void main(String[] args) {LocalUtil lu =  LocalUtil.getInstance();List<String> list = lu.getCities("中国", "湖北");for(int i=0; i<list.size(); i++){System.out.println(list.get(i) + " ");}System.out.println(lu.getProvinces("中国"));  }
}

java查询全国地区相关推荐

  1. JAVA 油站管理系统_基于JAVA的全国加油站[实时油价]接口调用代码实例

    代码描述:基于JAVA的全国加油站[实时油价]接口调用代码实例 接口地址:https://www.juhe.cn/docs/api/id/7 1.[代码][Java]代码 import java.io ...

  2. JAVA毕业设计华北地区阔叶林木叶部病虫害图像管理系统计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计华北地区阔叶林木叶部病虫害图像管理系统计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计华北地区阔叶林木叶部病虫害图像管理系统计算机源码+lw文档+系统+调试部署+数据库 ...

  3. 全国地区数据表(绝对全)

    DROP TABLE IF EXISTS `core_area`; CREATE TABLE `core_area` (`code` varchar(12) NOT NULL DEFAULT '' C ...

  4. Java开发西安地区最近面试汇总(三)

    Java开发西安地区最近面试汇总(三) 1.Spring的循环依赖 构造器的循环依赖 案例 结论 属性的循环依赖 案例 结论 Spring内部是在何时完成的属性注入,又是如何解决的循环依赖. 小结 2 ...

  5. 【PI应用】用Java查询雅虎天气并解析Json数据

    这篇文章是"树莓派查询天气,通过串口彩屏/7219点阵实时显示"的一部分,主要介绍使用Java查询雅虎天气并解析Json返回数据,这里只是将获得的实时天气.未来十天的天气等信息,解 ...

  6. Java查询ES (elasticsearch) 对短句进行关键词摘要 并分词查询

    项目场景: 提示:根据用户最近浏览的文章标题进行关键词摘要,并根据结果,查询ES 这里关键的是根据内容获取关键词摘要的方法 关键词摘要 使用IK中文分词 pom文件 <!--中文分析器--> ...

  7. 全国地区城市行政代码字典表(带城市天气代码)

    全国地区城市行政代码字典表------带城市天气代码 此文件也称如下名字 国内地区字典表 全国各地区代码,字典表 全国省市县区字典(地区码) 全国城市代码字典(天气代码) 2022年中国省市县行政区划 ...

  8. Java查询大文本文件的处理方法

    有时我们需要查询大文本而不是数据库,这时就需要流式读入文件并实现查询算法,还要进行并行处理以提高性能.但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差,难以实现高效的 ...

  9. java查询数据库以后的对齐问题

    用java连接数据库以后对一个简单的表进行了查询,每个字段用制表符"\t"分隔,查询出的结果出现了列无法对齐的情况,原因是如果字段值长度>=8(例如"salesma ...

最新文章

  1. BagNet超越 AlexNet,在ImageNet 上实现最先进结果!
  2. 全国大学生智能车竞赛赛场准备好,就等同学们入驻展示
  3. 『Python基础-11』集合 (set)
  4. 口的内存映射 stm32f7_STM32F7高速缓存
  5. GDCM:gdcm::Sorter的测试程序
  6. 【iHMI43 应用演示】之 modbus 协议(从机)通信演示
  7. 15个Google面试题以及答案~~~~你会几个?
  8. tcp 接收端优雅的写法_如何更优雅地接收设计反馈
  9. Jenkins_安装基础软件_入门试炼03
  10. iOS开发-View中frame和bounds区别
  11. Android开发笔记(五十四)数据共享接口ContentProvider
  12. 2020 年百度之星程序设计大赛 - 初赛二
  13. 8086/8088CPU内部结构
  14. 计算机维护费入什么会计科目,​系统维护费记入什么会计科目
  15. SSMS 实用小技巧
  16. js中yyyy-MM-dd格式的日期转换
  17. day11【网络编程】
  18. 计算机改显存会有啥影响,显卡显存越大越好吗?显存对电脑速度的影响有哪些?...
  19. Caffe2 - (十)训练数据集创建
  20. STM32之UART

热门文章

  1. JavaScript提示层漂浮js特效代码
  2. 区块链目前实际的应用场景汇总
  3. 如何获取管理员权限,修改文件
  4. Hbase下载安装部署详细步骤
  5. 解决安卓TV 应用图标不显示的问题
  6. uniapp 数据统计,数据埋点,自定义事件埋点封装
  7. 第四章 前馈神经网络
  8. 【Camera】Camera理论知识和基本原理
  9. Redis——cluster集群原理
  10. 【 iconfont-阿里巴巴矢量图标库使用】