博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAXB方式读写XML文件
阅读量:6163 次
发布时间:2019-06-21

本文共 3152 字,大约阅读时间需要 10 分钟。

hot3.png

import java.io.File;import java.util.ArrayList;import java.util.List;import javax.xml.bind.JAXB;import org.apache.log4j.Logger;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;import cn.com.starit.ts.nms.collect.pon.snmp.beans.ConfigInfo;public class ConfigXml {        private static Logger logger = Logger.getLogger(ConfigXml.class);    String filePath="";    public ConfigXml() {    }        public ConfigXml(String filePath){        this.filePath=filePath;    }    /**     * JAXB方式读XML文件     * @param file     * @param clazz     * @return     */    public Object getConfigXmlByJAXB(File file,Class
 clazz){        return JAXB.unmarshal(file,clazz);            }        /**     * JAXB方式写XML文件     * @param clazz     * @param file     */    public void setConfigXmlByJAXB(Object obj,File file){        JAXB.marshal(obj,file);    }         /**     * load 载入一个xml文档     * @return 成功返回Document对象,失败返回null     * @param 文件路径     */    public Document load(String filename) {        Document document = null;        try {            SAXReader saxReader = new SAXReader();            document = saxReader.read(new File(filename));        } catch (Exception ex) {            logger.error("解析配置文件失败:" + ex.getMessage());        }        return document;    }    //*地址改成配置的    @SuppressWarnings("unchecked")    public List
 getProcessList() {        String home = System.getenv("TSPON_HOME"); //环境变量        if (home == null) {            home = "D:/SNMP";        }        filePath= home + "/collect/config/snmp_config.xml";        Document doc = load(filePath);                List
 process_list = new ArrayList
();        if (doc == null) {            return process_list;        }        Element define = doc.getRootElement().element("process_list");        List
 defineNodes = define.elements("process");        return defineNodes;    }    public ConfigInfo getCollWayConfig(){        String home = System.getenv("TSPON_HOME");        if (home == null) {            home = "D:/SNMP";        }        String collWayFile = home + "/collect/config/snmp_collecter.xml";        return(ConfigInfo) getConfigXmlByJAXB(new File(collWayFile),ConfigInfo.class);//把一个xml文件与一个javabean对象结合起来    }        public static void main(String[] a) {//        ConfigXml xml=new ConfigXml("d:\\snmp_collect_config.xml");//        xml.getProcessList();        ConfigXml xml = new ConfigXml();        ConfigInfo config = new ConfigInfo();        //写        List
 list = new ArrayList
();        for(int i=1;i<5;i++){            ConfigInfo configFactory = new ConfigInfo();            configFactory.setFactoryId(i);            configFactory.setCollType(1);            configFactory.setOltCollMode(1);            configFactory.setOnuCollMode(1);            configFactory.setSendLength(5);            list.add(configFactory);        }        config.setConfig(list);        xml.setConfigXmlByJAXB(config,new File("d:/a.xml"));        //读        config = (ConfigInfo)xml.getConfigXmlByJAXB(new File("d:/a.xml"),ConfigInfo.class);        for(ConfigInfo con:config.getConfig()){            System.out.println(con.getOltCollMode());        }    }        }

转载于:https://my.oschina.net/reachwang/blog/300727

你可能感兴趣的文章
Linux学习总结(四)-两种模式修复系统,单用户,救援模式
查看>>
DB2 V10.5 PureScale支持HADR
查看>>
msscript 64位找不到的替代方法
查看>>
css base64 图片背景
查看>>
中文编程汉语编程开发的大型管理软件案例
查看>>
mysql优化
查看>>
svn添加提交备注限制和自动发布web项目
查看>>
Linux---管理网络
查看>>
与国共庆,与家携行
查看>>
Linux 启动流程学习
查看>>
比较awk python: [文件]web日志信息统计 。 [命令]netstat命令状态统计
查看>>
PHP如何有效实现多视频同时上传功能
查看>>
strtus2 与springmvc
查看>>
Nginx 与 PHP-Fpm的安装过程遇到的问题
查看>>
前端性能优化
查看>>
从分析***方式来谈如何防御DDoS***
查看>>
51-高级路由:BGP community属性:local-as
查看>>
Apache Ignite事务架构:第三方持久化的事务处理
查看>>
云和物联网(IoT)是不可分割的,因为物联网需要云来运行和执行
查看>>
无标题文章
查看>>