JavaWeb之XML入门(零基础教程 建议收藏)

本文是针对初学者的JavaWeb XML教程,介绍了XML的基本概念、与HTML的区别、用途、文档结构和语义约束。讲解了DTD和XML Schema的使用,以及DOM和Dom4j解析XML的方法。此外,还详细阐述了XPath路径表达式,并给出了使用Jaxen的实践示例。
摘要由CSDN通过智能技术生成

长文预警,可以收藏慢慢看,本文适合零基础学习,你们的三连是羽毛最大的动力
优质文章导读:
Servlet入门(零基础教程)
一文了解Java反射

XML是什么

  • XML的全程是EXtensible Markup Language,可扩展标记语言
  • 编写XML就是编写标签,与HTML非常类似,扩展名 .xml
  • 具有良好的人机可读性

XML与HTML的比较

  • XML与HTML非常相似,都是编写标签
  • XML没有预定义标签,HTML存在大量预定义标签
  • XML重在保存与传输数据,HTML用于显示信息

XML的用途

  • Java程序的配置描述文件
  • 用于保存程序产生的数据
  • 网络间的数据传输(例如webservice底层soap协议)

XML文档结构

  • 第一行必须是XML声明
  • 有且只有一个根节点
  • XML标签的书写规则与HTML相同

XML声明

XML声明说明XML文档的基本信息,包括版本号与字符集,写在XML第一行

<?xml version="1.0" encoding="UTF-8"?>
//version 代表版本号1.0 encoding UTF-8 设置字符集,用于支持中文

在XML中所有的标签和属性都是可以进行自定义的,所以我们写的时候尽量让它与内容相匹配,增强可读性
例如:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 人力资源管理系统 (这是注释) -->
<hr> <!-- 根节点  -->
    <employee no="857857">
        <name>张三</name>
        <age>31</age>
        <salary>4000</salary>
        <department>
            <dname>会计部</dname>
            <address>XX大厦-A103</address>
        </department>
    </employee>
</hr>

如何使用IDEA创建xml文件:使用IDEA创建xml文件

目前大多数的浏览器对于xml提供了良好的校验和检查
如何使用浏览器对xml进行结构检查

XML标签书写规则

XML标签书写规则请移步此篇文章:XML标签书写规则

XML语义约束

  • XML文档结构正确,但可能不是有效的(例如,员工档案XML中绝不允许出现"植物品种"标签。XML语义约束就是用于规定XML文档中允许
    出现哪些元素.)
  • XML语义约束有两种定义方式: DTDXML Schema

DTD

DTD(Document Type Definition,文档类型定义)是一种简单易用的语义约束方式.
DTD文件的扩展名为.dtd

DTD定义节点
  • 利用DTD中的<!ELEMENT>标签,我们可以定义XML文档中允许出现的节点及数量
<!-- 定义hr节点下只允许出现1个employee子节点 -->
<!ELEMENT hr (employee)>

<!-- employee节点下必须包含以下四个节点,且按顺序出现 -->
<!ELEMENT employee (name,age,salary,department)>

<!-- 定义name标签体只能是文本,#PCDATA代表文本元素 -->
<!ELEMENT name (#PCDATA)>
DTD定义节点数量
  • 如某个子节点需要多次重复出现,则需要在子节点后增加相应的描述符
<!-- hr节点下最少出现1个employee子节点 -->
<!ELEMENT hr (employee+)>

<!-- hr节点下可出现0-n个employee子节点 -->
<!ELEMENT hr (employee*)>

<!-- hr节点下最多出现1个employee子节点 -->
<!ELEMENT hr (employee?)>
XML引用DTD文件
  • 在XML中使用<!DOCTYPE>标签来引用DTD文件
    书写格式:
创建并使用DTD文件

现在有一个.xml文件,要创建.dtd文件并且添加约束

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hr SYSTEM "hr.dtd">
<!-- 人力资源管理系统 -->
<hr>
    <employee no="1111">
        <name>张三</name>
        <age>18</age>
        <salary>4000</salary>
        <department>
            <dname>会计部</dname>
            <address>XX大厦</address>
        </department>
    </employee>

</hr>

创建一个.dtd文件(IDEA如何创建.dtd文件可以参考 IDEA如何创建.dtd文件)

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT hr (employee+)> <!-- hr节点下最少出现一个employee节点 -->
<!ELEMENT employee (name,age,salary,department)> <!-- employee 节点下必须包含这四个节点,并且按顺序出现 -->
<!ATTLIST employee no CDATA ""> <!-- 约束no 标签以 CDATA的格式出现 -->
<!ELEMENT name (#PCDATA)> <!-- 使name只能以纯文本出现 -->
<!ELEMENT age (#PCDATA)>
<!ELEMENT salary (#PCDATA)>
<!ELEMENT employee.department (dname,address)> 
<!ELEMENT department (#PCDATA)>
<!ELEMENT dname (#PCDATA)>
<!ELEMENT address (#PCDATA)>

XML Schema

  • XML Schema 比 DTD更为复杂,提供了更多功能
  • XML Schema 提供了数据类型,格式限定,数据范围等特性
  • XML Schema 是W3C标准
    (IDEA如何创建XML Schema文件可以参考 IDEA如何创建XML Schema文件)
    如何使用在代码中体现:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.w3school.com.cn"
           xmlns="http://www.w3school.com.cn"
           elementFormDefault="qualified">
    <xs:element name="hr">
        <!-- complexType标签含义是复杂节点,包含字节点时必须使用这个标签 -->
        <xs:complexType>
            <xs:sequence><!-- sequence 元素要求组中的元素以指定的顺序出现在包含元素中 -->
                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羽 毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值