XML文件的读取与保存

最近做了一个读取XML文件的信息显示到浏览器上,再可以更改之后保存回XML文件中的功能,在网上查看了一些资料,勉强算完成任务,新手入门,故先记录下来,若有大佬有较好的解决方案,还望给出评论!
大概的思路是:采用jsp/servlet,dom4j进行读取xml文件完成。
dom4j使用
1、导包
2、文件加载

public Document load(File file) {
        // TODO Auto-generated method stub
        Document document = null;
        try {
        SAXReader saxReader = new SAXReader();
        document = saxReader.read(file); 
        } catch (Exception ex) {
        ex.printStackTrace();

        }
        return document;
    }

3、读取XML文件内容

public List catDetails(Document document) {
        // TODO Auto-generated method stub
        List<Value> vlist=new ArrayList();
        try {
        //获取根节点
            Element root = document.getRootElement();
        //获取子元素的集合
            List<Element> list=root.elements();
            for(Element e:list) {

                Value v=new Value();
            //使用实体类接收数据
                v.setNum(e.elementText("PRO"));
                v.setPro(e.elementText("NUM"));
                vlist.add(v);

            }

        }catch(Exception ex) {
            ex.printStackTrace();
        }finally {
            return vlist;
        }
    }

然后获取返回的数据再显示到jsp页面中

2、保存修改后的内容,通过form表单提交修改后的内容,再写入覆盖掉源文件

public void saveToXML(List<Value> list) {
        //1.创建文档
        Document doc=DocumentHelper.createDocument();
        //2.添加标签
        Element rootElem=doc.addElement("ROOT");

        for(Value v:list) {
             Element stuElem=rootElem.addElement("VALUE");
             Element proElem= stuElem.addElement("PRO");
             Element numElem= stuElem.addElement("NUM");
             proElem.addText(v.getPro());
             numElem.addText(v.getNum());
        }
        FileOutputStream out = null;
        try {
            out = new FileOutputStream("D:/test.xml");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        // 指定文本的写出的格式:
        OutputFormat format=OutputFormat.createPrettyPrint();   //漂亮格式:有空格换行
        format.setEncoding("UTF-8");

        //1.创建写出对象
        XMLWriter writer = null;
        try {
            writer = new XMLWriter(out,format);
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        //2.写出Document对象
        try {
            writer.write(doc);
            //3.关闭流
            writer.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值