(5)XML与XML解析的使用

1,xml的简介

2,xml 语法

3,dom4j 解析技术

xml的简介
1,什么是xml?
  • xml是可扩展的标记性语言,主要用于存储数据与数据交互,它与开发平台,编程语言和操作系统无关.
2,xml的主要作用

①,用来保存数据,而且这些数据具有自我描述性

②,它还可以作为项目或者模块的配置文件

③,还可以作为网络传输数据的格式(现在JSON为主)

xml 语法
1,创建一个 xml 文件

在这里插入图片描述
在这里插入图片描述

2,xml 声明
<?xml version="1.0" encoding="UTF-8"?> 
<!-- xml 声明 version 是版本的意思 encoding 是编码 -->
  • 而且这个<?xml 要连在一起写,否则会有报错

  • 属性
    version:是版本号
    encoding:是 xml 的文件编码
    standalone=“yes/no” :表示这个 xml 文件是否是独立的 xml 文件

  • 案例:

<?xml version="1.0" encoding="UTF-8" ?>

<books>
    <book sn="SN1234">
        <name>时间简史</name>
        <author>霍金</author>
        <price>76.9</price>
    </book>
    <book sn="SN1314">
        <name>Java编程思想</name>
        <author>未知</author>
        <price>100</price>
    </book>
</books>
3,xml 注释
  • html 和 XML 注释 一样 :<!-- html 注释 -->
4,元素(标签)
  • 什么是 xml 元素?
    XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
    元素可包含其他元素、文本或者两者的混合物,元素也可以拥有属性。

  • xml 的命名规则

①,名称可以含字母、数字以及其他的字符
②,名称不能以数字或者标点符号开始
③,名称不能包含空格
  • xml 中的元素(标签)也成分成 单标签和双标签:
单标签格式: <标签名 属性=”值” 属性=”值” ...... />
双标签格式:< 标签名 属性=”值” 属性=”值” ......>文本数据或子标签 < /标签名>
5,xml 属性
  • xml 的标签属性和 html 的标签属性是非常类似的, 属性可以提供元素的额外信息
  • 在标签上可以书写属性:
    一个标签上可以书写多个属性。用 每个属性的值必须使用引号引起来。

在这里插入图片描述

6,语法规则:

①,所有 XML 元素都须有关闭标签 (也就是闭合)

②,XML 标签对大小写敏感

③,XML 必须正确的嵌套

④,XML 文档必须有根元素

  • 根元素就是顶级元素,没有父标签的元素,叫顶级元素。根元素是没有父标签的顶级元素,而且是唯一一个才行。
    在这里插入图片描述

⑤,XML 中的特殊字符

> 特殊字符:&gt;
< 特殊字符:&lt;

⑥,文本区域(CDATA 区)

  • CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析
  • CDATA 格式:
<![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>
dom4j 解析技术
1,xml解析技术的介绍
  • 早期 JDK 为我们提供了两种 xml 解析技术 DOM 和 和 Sax 简介( 已经过时)

  • 第三方的解析:
    jdom 在 dom 基础上进行了封装 。
    dom4j 又对 jdom 进行了封装。
    pull 主要用在 Android 手机开发,是在跟 sax 非常类似都是事件机制解析 xml 文件。

  • 这个 Dom4j 它是第三方的解析技术。我们需要使用第三方给我们提供好的类库才可以解析 xml 文件。

2,Dom4j 类库使用需要导入的jar包

①,junit包的下载

②,hamcrest-core包的下载

③,dom4j包的下载

  • 加载jar包

在这里插入图片描述

3,Dom4j 的使用案例

  • 目录结构
    在这里插入图片描述
  • books.xml
<?xml version="1.0" encoding="UTF-8" ?>

<books>
    <book sn="SN1234">
        <name>时间简史</name>
        <author>霍金</author>
        <price>76.9</price>
    </book>
    <book sn="SN1314">
        <name>Java编程思想</name>
        <author>未知</author>
        <price>100</price>
    </book>
</books>
  • Book.class(实体)
public class Book {
    private String sn;
    private String name;
    private BigDecimal price;
    private String autor;

	set,get,toString
}
  • Dom4jTest.class(测试)
/**
 * @author Tommey周
 * @create 2020-05-18 7:59
 */
public class Dom4jTest {

    @Test
    public void test1() throws DocumentException {
        //1,通过创建SAXReader对象。来读取xml文件,获取Document对象
        SAXReader reader = new SAXReader();
        Document document = reader.read("xml/books.xml");
        //2,通过Document对象。拿到xml的根元素对象
        Element rootElement = document.getRootElement();
        //System.out.println("将当前元素转换成String对象"+rootElement.asXML());
        //3,通过根元素对象。获取所有的book标签对象
        List<Element> books = rootElement.elements("book");
        //4,遍历每个book标签对象。然后获取到book标签对象内的每一个元素
        for (Element book: books) {
            System.out.println("编号:"+book.attribute("sn").getText() +"\t书名:"+book.element("name").getText()+"\t作者:"+book.element("author").getText()
                    +"\t价格:"+book.element("price").getText());
        }
    }
}

下一章,(6)Tomcat的快速应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值