世界国家和城市数据 XML 转 JSON 方法

该博客分享了一个Java方法,用于读取XML文件中包含的世界国家和城市数据,并将其转换为JSON格式输出。博主提到在寻找免费资源时遇到困难,因此决定开源此代码,为开发者提供便利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目上做国内和国际的 项目地址:

在这里插入图片描述
在这里插入图片描述

世界国家和城市数据,
通过 QQ 的
在这里插入图片描述
在这里插入图片描述

写个java 方法,转成

public class XMLUtilsTest {
 
    public static void node(NodeList list) {
        for (int i = 0; i < list.getLength(); i++) {
            Node node = list.item(i);
            NodeList childNodes = node.getChildNodes();
            NodeList childNodes1;
            NodeList childNodes2;
            String name;
            String code;

            for (int j = 0; j < childNodes.getLength(); j++) {
                if (childNodes.item(j).getNodeType() == Node.ELEMENT_NODE) {
                    name = childNodes.item(j).getAttributes().getNamedItem("Name").getNodeValue();
                    code = childNodes.item(j).getAttributes().getNamedItem("Code").getNodeValue();

                    System.out.println("{\"code\": \"" + name + "\", \"name\": \"" + code + "\"},");

                    childNodes1 = childNodes.item(j).getChildNodes();
                    for (int k = 0; k < childNodes1.getLength(); k++) {
                        if (childNodes1.item(k).getNodeType() == Node.ELEMENT_NODE) {
                            if (childNodes1.item(k).getAttributes().getNamedItem("Name") == null) {
                                childNodes2 = childNodes1.item(k).getChildNodes();
                                for (int l = 0; l < childNodes2.getLength(); l++) {
                                    if (childNodes2.item(l).getNodeType() == Node.ELEMENT_NODE) {

                                        name = childNodes2.item(l).getAttributes().getNamedItem("Name").getNodeValue();
                                        code = childNodes2.item(l).getAttributes().getNamedItem("Code").getNodeValue();

                                        System.out.println("{\"code\": \"" + name + "\", \"name\": \"" + code + "\"},");
                                    }
                                }
                            } else {
                                name = childNodes1.item(k).getAttributes().getNamedItem("Name").getNodeValue();
                                code = childNodes1.item(k).getAttributes().getNamedItem("Code").getNodeValue();

                                System.out.println("{\"code\": \"" + name + "\", \"name\": \"" + code + "\"},");
                            }
                        }
                    }
                }
            }
        }
    }

    public static void main(String[] args) {
        //1.创建DocumentBuilderFactory对象
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        //2.创建DocumentBuilder对象
        try {
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document d = builder.parse("src/main/resources/locList.xml");
            NodeList sList = d.getElementsByTagName("Location");
            //element(sList);
            node(sList);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

直接copy 出来 ,加个帽子
在这里插入图片描述

就有了,之前本想找一个,哪知道 优快云 全部都是收费,心累,开源共享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值