JavaWeb核心基础——认识XML简单的存储数据语言

I:XML的概述

  1. 标签的名字可以是自定义的,所以 XML 是可扩展性标记语言

II:XML的作用

  1. 用来保存数据,而且这些数据具有自我描述性
  2. 也可以作为项目或者模块的配置文件
  3. 还可以作为网络传输数据的格式

III:XML的语法

  1. 标签可分为单标签和双标签
  2. 标签的属性值必须使用双引号
  3. 标签名的名字中间不能有空格
  4. 任何的标签都必须闭合
  5. 标签名对大小写敏感
  6. 整个文档必须只有一个根标签
  7. 特殊的字符要使用特定的转义符号表示
  8. 纯文本区域 CDATA 区:< ! [ CDATA [ 纯文本区域 ] ] >

IV:XML的解析技术

  1. 初期的 JDK 为 XML 分别提供了 DOM 和 SAX 技术,但现在已经过时了
  2. 第三方的解析有 jdom、dom4j、pull,dom4j 是对 jdom 进行了封装

V:XML的解析技术的使用

  1. 首先要将相应的 dom4j-1.6.1.jar 包放置在 IDEA 的模块下的 lib 目录中
  2. 将相应的 xml 文件放置在模块下的 src 目录中
  3. 新建一个 Java 类,其中的属性与 xml 根元素内部的标签名个数一致
  4. xml 文件的配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<books>
    <book sn="sn325687209879">
        <name>Java从入门到放弃</name>
        <author>班主任</author>
        <price>9.9</price>
    </book>
    <book sn="sn325687209880">
        <name>JavaScript从入门到入土</name>
        <author>班长</author>
        <price>99.99</price>
    </book>
</books>
  1. java 类的配置如下
public class Book {
    private String sn;
    private String name;
    private String author;
    private double price;

    public Book() {
    }

    public Book(String sn, String name, String author, double price) {
        this.sn = sn;
        this.name = name;
        this.author = author;
        this.price = price;
    }

    public String getSn() {
        return sn;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "sn='" + sn + '\'' +
                ", name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price=" + price +
                '}';
    }
}
  1. 新建一个测试方法,填写如下代码
  2. 先获取一个 saxReader 输入流对象
  3. 使用 saxReader 对象读取 xml 文件,Junit中,相对路径是从当前模块名开始
  4. 通过 document 对象获取根标签对象
  5. 再通过根标签获取 book 标签对象
  6. 遍历,处理每一个 book 标签,通过 getText() 方法可以获取标签中的文本内容
  7. 也可以直接通过 elementText() 直接获取标签中的文本内容
public class Dom4j {
    @Test
    public void testDom4j() throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("src/books.xml");
        Element rootElement = document.getRootElement();
        List<Element> books = rootElement.elements("book");
        for (Element book : books) {
            String snText = book.attributeValue("sn");
            Element name = book.element("name");
            String nameText = name.getText();
            String authorText = book.elementText("author");
            String priceText = book.elementText("price");
            System.out.println(new Book(snText, nameText, authorText, Double.parseDouble(priceText)));
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值