解析xml文件:增删改查的功能

xml文档的特点:
xml与操作系统,编程语言的开发平台无关。
实现不同系统之间的数据交换
作用:
数据交互
配置应用程序和网站
xml文件编写时的注意事项
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他的字符
元素名称不能以数字或者标点符号开始
元素名称中不能含空格
下面主要来介绍如何来解析xml文件
举个例子编写一个系统

  public void reader()throws Exception{//查询
        SAXReader reader=new SAXReader();//dom4j 获取saxReader
        Document doc=reader.read("src/Student.xml");// 获取document
        Element root=doc.getRootElement();//获取根
        List<Element> user=root.elements("user");//指定元素
        for (Element users : user) {//遍历元素
            String id=users.attributeValue("id");
            String name=users.elementText("name");
            String yscore=users.elementText("yscore");
            String sscore=users.elementText("sscore");
            System.out.println(id+"\t"+name+"\t"+yscore+"\t"+sscore);//打印输出
        }
    }

    public void add()throws Exception{//添加
        SAXReader reader=new SAXReader();
        Document dom=reader.read("src/Student.xml");
        Element root=dom.getRootElement();
       /* Element user=root.element("user");*/
        Element newuser=root.addElement("user");
        newuser.addAttribute("id","3");//添加新属性
        newuser.addElement("name").setText("张三");//添加新元素并赋值
        newuser.addElement("yscore").setText("99");
        newuser.addElement("sscore").setText("100");
        OutputFormat opf=OutputFormat.createCompactFormat();//对象输出流写入
        opf.setEncoding("UTF-8");//字符编码
        XMLWriter writer=new XMLWriter(new FileWriter("src/Student.xml"),opf);//文件流写入
        writer.write(dom);
        writer.close();//关闭流
    }
    public void delete(String id) throws Exception{//删除
        SAXReader reader=new SAXReader();
        Document dom=reader.read("src/Student.xml");
        Element root=dom.getRootElement();
        List<Element> user=root.elements("user");
        for (Element users : user) {//循环遍历
            String xmld=users.attributeValue("id");//获取属性
            if (xmld.equals(id)){//判断
                users.getParent().remove(users);
                break;
            }
        }
        OutputFormat opf=OutputFormat.createCompactFormat();
        opf.setEncoding("UTF-8");
        XMLWriter writer=new XMLWriter(new FileWriter("src/Student.xml"),opf);
        writer.write(dom);
        writer.close();

    }
    public void Update(String id) throws Exception{//修改
        SAXReader reader=new SAXReader();
        Document doc=reader.read("src/Student.xml");
        Element root=doc.getRootElement();
        List<Element> users=root.elements("user");
        for (Element user : users) {//循环遍历
            String xmlid=user.attributeValue("id");//获取属性
            if (xmlid.equals(id)){//判断
                user.element("name").setText("小明");
                user.element("yscore").setText("100");
                user.element("sscore").setText("90");
                break;
            }
        }
        OutputFormat opf= OutputFormat.createCompactFormat();
        opf.setEncoding("UTF-8");
        XMLWriter writer=new XMLWriter(new FileWriter("src/Student.xml"));//文件流写入
        writer.write(doc);//写入
        writer.close();//关闭流
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值