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

XML 解析与XMl建模

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

XML 解析与XMl建模

一.XML 解析

1.在Java中的配置文件有四类:

*.xml

*.properties  

*.ini                 

*.yaml     public void put (ForwardModel forwardModel){         this.Fw.put(forwardModel.getName(),forwardModel);     }          public ForwardModel get (String name){         return this.Fw.get(name);     } }

开始解析建模:

load .......

public class ConfigModelFactory {

    //配置文件默认路径

    public static final  String DEFAULT_PATH ="/config.xml";



  



    

     public static ConfigModel createConfigmodel(String path){

       //获得文件io流

         InputStream inputStream = ConfigModelFactory.class.getResourceAsStream(path);

        

        //创建读取器对象Sax

         SAXReader saxReader = new SAXReader();

         

         String  actionpath = null;

         String  actiontype = null;

         ActionModel actionModel=null;





         String forwardname=null;

         String forwardpath=null;

         String forwardredirect=null;

         ForwardModel forwardModel = null;





         ConfigModel configModel=new ConfigModel();

         try {

             //创建配置文件,生成document对象

             Document document = saxReader.read(inputStream);

             //开始解析

             List actionnodes = document.selectNodes("/config/action");

             for (Node actionnode : actionnodes) {

                 //对象转换

                 Element actionelment =(Element) actionnode;

               

                 actionpath = actionelment.attributeValue("path");

                 actiontype = actionelment.attributeValue("type");

                 

                 actionModel=new ActionModel();

                 //将属性赋入对象

                 actionModel.setPath(actionpath);

                 actionModel.setType(actiontype);



                 //获取该action下的forward标签

                 List forwardnodes = actionnode.selectNodes("forward");

                //遍历forword标签 转换对象

                 for (Node forwardnode : forwardnodes) {

                     Element forwardelment = (Element) forwardnode;

                     forwardname = forwardelment.attributeValue("name");

                     forwardpath = forwardelment.attributeValue("path");

                     forwardredirect = forwardelment.attributeValue("redirect");

                     //实例化forwardmodel对象

                     forwardModel =new ForwardModel();

                     //将属性赋入对象

                     forwardModel.setName(forwardname);

                     forwardModel.setPath(forwardpath);

                     forwardModel.setRedirect(Boolean.parseBoolean(forwardredirect));

                     //将forwardmodel对象放入action对象集合

                     actionModel.put(forwardModel);



                 }



                configModel.put(actionModel);

             }

             return  configModel;

         } catch (DocumentException e) {

             throw new RuntimeException(e);

         }



     }



    

    public static ConfigModel createConfigmodel(){

        return  createConfigmodel(DEFAULT_PATH);

    }

在写一个main方法测试

 public static void main(String[] args) {



        ConfigModel configmodel = createConfigmodel();

        ActionModel actionModel = configmodel.get("/regAction");



        System.out.println(actionModel);



}

 结果:

ActionModel{path='/regAction', type='test.RegAction', Fw={success=ForwardModel{name='success', path='/login.jsp', redirect=true}, failed=ForwardModel{name='failed', path='/reg.jsp', redirect=false}}}

没毛病。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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