XML基础

XML的全称是EXtensible Markup Language,可扩展标记语言
XML文档结构
    有且只有一个根节点。
    第一行必须是XML声明。
    XML标签的书写规则与HTML相同。
XML声明
    XML声明说明XML文档的基本信息,包括版本号与字符集,写在XML第一行。
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    version 必须属性 代表版本号1.0/1.1
    encoding 非必须 UTF-8设置字符集,用于支持中文
   standalone 非必须 当前xml文件是否依赖其他的xml文件 取值:yes、no 处理特殊字符 标签体中,出现
"<"">"特殊字符,会破坏文档结构。 解决方案1:使用实体引用。 解决方案2:使用CDATA标签。
无效的XML:
<exam> <question>1+4<3是否正确?</question> <question>3+5>8是否正确?</question> </exam>

修改后的XML
<exam>
  <question>1+4&lt;3是否正确?</question>
  <question>3+5&gt;8是否正确?</question>
</exam>

 

CDATA标签
1.CDATA指的是不应由XML 解析器进行解析的文本数据
2.从"<![CDATA[" 开始,到"]]>"结束
例如:
<lesson>
    <content>
        <![CDATA[html中标签的使用:a<body><a href="index.html">首页</a></body>]]>
    </content>
</lesson>
页面效果如下:

 

XML语义约束
XML语义约束有两种定义方式:DTD与XMLSchema。

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

DTD定义节点
利用DTD中的标签,我们可以定义XML文档中允 许出现的节点及数量,以hr.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?)>

//employee标签内有 name,age,salary,department子标签
<!ELEMENT employee (name,age,salary,department)>

//基本语法:<!ATTLIST   元素名称   属性名称   属性类型  属性约束>
//属性类型 CDATA:字符或数字,普通的字符串;属性约束:#REQUIRED必须的 #IMPLIED属性不是必须的 #FIXED value属性值是固定的
<!ATTLIST employee no CDATA "">

//在DTD中,指定某个标签中的内容是字符数据时,使用(#PCDATA)
//定义name标签体只能是文本,#PCDATA代表文本元素。
<!ELEMENT name (#PCDATA)> ...

XML中引用dtd文件:
在xml文件中使用<!DOCTYPE>标签来引用DTD文件
三种书写格式:
1.引入本地dtd
<!DOCTYPE 根节点 SYSTEM "dtd文件路径"> 示例:<!DOCTYPE hr SYSTEM "hr.dtd">
2.在xml文件内部引入
<!DOCTYPE 根节点 [dtd文件内容]>
3.引入网络dtd
<!DOCTYPE 根节点 PUBLIC "DTD文件名称" "DTD文档的URL">
XML Schema
1.XML Schema比DTD更为复杂,提供了更多功能。 2.XML Schema 提供了数据类型、格式限定、数据范围等特性。 Dom4j Dom4j是一个易用的、开源的库,用于解析XML。它 应用于Java平台,具有性能优异、功能强大和极其易使 用的特点。 Dom4j将XML视为Document对象。 XML标签被Dom4j定义为Element对象 XPath路径表达式 XPath路径表达式是XML 文档中查找数据的语言。 常用的基本表达式 nodename:选取此节点的所有子节点 /:从根节点选取 //:从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置 .:选取当前节点 ..:选取当前节点的父节点 @:选取属性



 

posted @ 2021-04-13 22:57  景、  阅读(68)  评论(0编辑  收藏  举报