xml

xml


什么是xml?

  1. 可扩展标记语言,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
  2. 它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

xml的作用

  1. 存储数据
  2. 传输数据

通过案例来学习xml

  • 写一个xml文件,用来储存家庭的人口信息(姓名,年龄等)。
<?xml version="1.0" encoding="UTF-8" ?>
<families>
    <family>
        <person>
            <name>父亲</name>
            <age>36</age>
        </person>
        <person>
            <name>母亲</name>
            <age>35</age>
        </person>
    </family>
    <family>
        <person>
            <name>父亲</name>
            <age>36</age>
        </person>
        <person>
            <name>母亲</name>
            <age>35</age>
        </person>
    </family>
</families>

xml文档总结

1.必须要有一个跟标签
2.任意标签之间只能是包含关系或并列关系,合理的嵌套
3.除了标签体,还可以有属性和文本。
4.xml中没有内置任何标签,没有内置任何属性。所以:标签和属性都是自定义的。


xml的解析

DOM(Document Object Model)解析:是基于 XML 文档树结构的解析,整颗树加载到内存中,耗内存,可多次获取。

SAX(Simple API for XML)解析:是基于事件流的解析。效率高,数据量小,仅一次获取 。

DOM4J解析:融合了Dom和Sax的优点,即能保证效率,同时也可多次获取。著名的开发框架Spring和Hibernate都使用了Dom4j的功能。


Dom4j的增删改查操作

所有的操作必先有步操作!

导包!

dom4j-1.6.1.jar

  1. 查询
 @Test//获取xml中的数据
public void test1() throws DocumentException {
    //1.获取sax解析器对象
    SAXReader reader = new SAXReader();
    //2.读取某个xml文件--返回一个文档对象,表示整个xml文档树
    Document doc = reader.read("src/xml1/a.xml");
    //3.获取跟标签
    Element root = doc.getRootElement();
    //4.逐级向下寻找标签
    Element family1 = (Element) root.elements("family").get(0);
    Element person1 = (Element)family1.elements("person").get(0);
    Element age = person1.element("age");
    System.out.println(age.getText());//获取标签的文本内容
}
  1. 增加
//一、构建文档树
        //1.创建解析器
        SAXReader reader = new SAXReader();
        //2.返回xml对应的dom文档树
        Document doc = reader.read("src/xml/china.xml");
        //3.获取根标签
        Element root = doc.getRootElement();
        //4.给根标签加一个子标签
        Element e1 = root.addElement("湖南");
        Element e2 = e1.addElement("长沙");
        e2.setText("5555");


        //二、用新的文档树覆盖旧的文档树
        //1.借助字节输出流
        FileOutputStream f1 = new FileOutputStream("src/xml/china.xml");
        //2.需要一个格式化美化对象
        OutputFormat format = OutputFormat.createPrettyPrint();
        //3.根据上面的2个对象,侯建一个xml输出流对象
        XMLWriter writer = new XMLWriter(f1,format);
        //4.将doc文档树 重新写入xml文件中
        writer.write(doc);
        //5.关闭流 -- 刷新缓冲区
        writer.close();

删除、修改操作可以自己去尝试,我就不一一举例了。

留下个赞再走吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值