《XML》

《XML》

<大纲>

  1. 介绍与用途
  2. 语法规则
  3. 语义约束
  4. Java解析XML
  5. XPath路径表达式

一、<介绍与用途>

1. XML是什么

  • 全称:Extensible Marked Language,可扩展标记语言;

  • 编写XML就是编写标签,和HTML相似;

  • 具有良好的人机可读性;

  • 例如:

    <employee no="3309">
    			<name>张三</name>
    			<age>31</age>
    			<salary>40000</salary>
    			<department>
    						<dname>会计部</dname>
    						<address>XX大厦-401</address>
    			</department>
    </employee>  
    

2.XML和HTML的区别

HTML标签是预定义的;XML标签是自定义的、可扩展的;

HTML是用来显示数据的;XML是用来描述数据、存放数据的,所以可以作为持久化的介质!

3.XML的用途

WEB应用配置文件

二、<语法规则>

  • 第一行必须是XML声明

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

    version 是版本号,encoding是字符集编码

  • 有且只有一个根结点

  • 便签书写规则与HTML相同

    开始标签和闭合标签

  • 合理的标签名

    父标签和子标签不能一样

    不能用无意义的标签

    不能用中文

  • 适当的注释与缩进

  • 合理使用属性

  • 特殊字符与CDATA标签

    <,>,&,’,"符号使用实体引用,

在这里插入图片描述

在CDATA标签内部的是不被解析的文本数据

从<![CDATA[开始,到]]结束。

  • 有序的子序列

    嵌套前后标签应保持一致

三、<XML语义约束>

概述:XML文档结构正常,但可能不是有效的

​ XML语义约束就是用于规定XML文档中允许出现哪些元素

1.DTD(Document Type Definition)

  • 一种简单易用的语义约束方式

  • 扩展名:.dtd

  • <!ELEMENT>标签,定义XML文档中允许出现的结点和数量
    <!ELEMENT hr (employee)>
    <!--定义hr标签,hr标签下只能有一个employee子节点-->
    <!ELEMENT hr (employee+)>
    <!--定义hr标签,hr标签下最少出现一个employee子节点-->
    <!ELEMENT hr (employee*)>
    <!--定义hr标签,hr标签下出现0~n个employee子节点-->
    <!ELEMENT hr (employee?)>
    <!--定义hr标签,hr标签下最多出现一个employee子节点-->
    
  • 在XML中使用

    <!DOCTYPE hr SYSTEM "hr.dtd">
    <!DOCUMENT 根结点 SYSTEM "dtd文件路径">
    

2.XML Schema

  • XML Schema 比DTD更为复杂,但也提供了更多功能

  • XML Schema 提供了数据类型、格式限定、数据范围等特性

  • XML Schema 是W3C标准

四、<Java解析XML>

  • DOM4j是一个易用的、开源的库,用于解析XML

    它应用于Java平台,具有性能优异、功能强大和极其易用的特点

  • DOM4j将XML视为Document对象,一个XML是一个DOM文档树

  • XML标签被Dom4j定义为Element对象

  • 利用DOM4j遍历、更新XML

  • 下载地址:Dom4j.github

五、<XPath路径表达式>

  • XPath路径表达式是XML文档中查找数据的语言

  • 提高提取数据时的开发效率

  • 本质:掌握各种表达式的使用技巧

  • 最常用的表达式

    在这里插入图片描述

  • XPath谓语表达式

在这里插入图片描述

  • Jaxen开源的XPath库,适应多种对象模型

    DOM4j底层依赖Jaxen来实现Xpath查询

    下载地址:jaxen.codehaus.org

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值