栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java访问xml配置文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java访问xml配置文件

Java访问xml配置文件

最近在做一个项目,要把一些经常用到的,而且基本没有修改的数据配置到xml文件中,然后要访问xml文件里面的相应数据,查阅许多资料,终于把它做出来了,在此记录一下。
我创建的是maven项目,然后MetroFactory.xml文件保存在resources目录下,具体内容如下:



    
        1
        一号线
        
            1
            岗顶
        
        
            2
            石牌桥
        
    
    
        2
        二号线
        
            1
            大学城南
        
        
            2
            大学城北
        
    

主函数如下:

public class TestDemo02 {
    public static void main(String[]args){
        try{
            //创建工厂
            DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
            DocumentBuilder builder=factory.newDocumentBuilder();
            Document doc;
            //创建document对象
            doc=builder.parse(new File("src/main/resources/MetroFactory.xml"));
            //获取根节点,即我的配置文件里面的config
            Element root=doc.getDocumentElement();
            //获取子节点数组
            NodeList metroList=root.getChildNodes();
            for(int i=0;i
                Node metroNode=metroList.item(i);
                if(metroNode!=null){
                    if(metroNode.getFirstChild()==null){
                        continue;
                    }
                    //当获取节点不为空时
                    for(Node node=metroNode.getFirstChild();node!=null;node=node.getNextSibling()){
                        if(node.getNodeName().equals("id")){
                            System.out.println("id="+node.getFirstChild().getNodeValue());
                        }else if(node.getNodeName().equals("name")){
                            System.out.println("name="+node.getFirstChild().getNodeValue());
                        }else if(node.getNodeName().equals("child")){
                            for(Node child=node.getFirstChild();child!=null;child=child.getNextSibling()){
                                if(child.getNodeName().equals("id")){
                                    System.out.println("child-id:"+child.getFirstChild().getNodeValue());
                                }else if(child.getNodeName().equals("name")){
                                    System.out.println("child-name:"+child.getFirstChild().getNodeValue());
                                }
                            }
                        }
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

结果如下:

不过这里还有一个问题,我访问文件是通过相对路径访问的,但是当我们把项目打包后,相对文件访问是失败的,要装换为流来操作
如下:

            InputStream inputStream=this.getClass().getResourceAsStream("/MetroFactory.xml");
            doc=builder.parse(inputStream);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/973746.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号