XML 简单入门

XML

XML是可扩展标记语言(Extensible Markup Language),他是一种数据表示格式,用于传输和存储数据。
XML内容经常被当作消息进行网络传输,或作为配置文件用于存储
是一种很像HTML的标记语言
XML标签没有预定义,需要自行定义标签

XML的创建

即创建一个XML类型的文件,后缀使用xml即可
image

XML语法规则

文档第一行必须是声明
<?xml version="1.0" encoding="UTF-8"?>
version:xml默认的版本号,必须存在
encoding:本XML文件的编码

XML的标签(元素)规则
标签由一对尖括号和合法标识符组成: <name></name>,必须存在一个根标签,有且只能有一个。
标签必须成对出现,有开始,有结束: <name></name>
特殊的标签可以不成对,但是必须有结束标记,如:<br/>
标签中可以定义属性,属性和标签名空格隔开,属性值必须用引号引起来<student id = “1”></name>
(注意:id标签内容唯一)
标签需要正确的嵌套

XML其他组成
XML文件中可以定义注释信息:<!– 注释内容 -->
XML文件中可以存在以下特殊字符:

&lt;    <  小于
&gt;    >  大于
&amp;   &  和号
&apos;  '  单引号
&quot;  "  引号

XML文件中可以存在CDATA区:在其中可以直接使用特殊字符
<![CDATA[ …内容… ]]>

XML文档约束

DTD

编写DTD约束文档,后缀必须是.dtd

<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
约束好了就只能按照约束来写XML文件

在需要编写的XML文件中导入该DTD约束文档
<!DOCTYPE 当前文件名 SYSTEM "约束文件.dtd">
按照约束的规定编写XML文件的内容。
优缺点:可以约束XML文件的编写,但是不能约束具体的数据类型。

schema

可以约束具体的数据类型,约束能力更强。
schema本身也是一个XML文件,本身也受其他约束文件约束。
使用步骤:
①:编写schema约束文档,后缀必须是.xsd,具体的形式到代码中观看。
②:在需要编写的XML文件中导入该schema约束文档
③:按照约束内容编写XML文件的标签。
优缺点:可以约束XML具体的数据类型

XML解析

使用程序读取XML中的数据
两种解析方式:SAX解析、DOM解析

DOM解析文档对象模型

对象模型分为:
Document对象:整个xml文档
Element对象:标签
Attribute对象:属性
Text对象:文本内容
这些都继承于Node对象

<?xml version="1.0" encoding="UTF-8" ?><students>
	<!--第一个学生信息-->
	<student id="1">
		<name>张三</name>
		<age>23</age>
	</student>
	<!--第二个学生信息-->
	<student id="2">
		<name>李四</name>
		<age>24</age>
	</student>
</students>

image

Dom解析常用技术框架:dom4j、JDOM等

Dom4J解析XML文件

具体步骤:
1、下载Dom4j框架,官网下载。
dom4j.github.io
image
2、在项目中创建一个文件夹:lib
3、将dom4j-2.1.1.jar文件复制到 lib 文件夹
4、在jar文件上点右键,选择 Add as Library -> 点击OK
5、在类中导包使用
SAXReader类:
public SAXReader() 创建Dom4J的解析器对象!
Document read(String url) 加载XML文件成为Document对象

Document类
Element getRootElement() 获得根元素对象

image

Dom4j解析XML的元素、属性、文本

image

XML检索技术:Xpath

XPath在解析XML文档方面提供了一独树一帜的路径思想,更加优雅,高效。
XPath使用路径表达式来定位XML文档中的元素节点或属性节点。

具体步骤:
1、导入jar包(dom4j和jaxen-1.1.2.jar),Xpath技术依赖Dom4j技术
2、通过dom4j的SAXReader获取Document对象
3、利用XPath提供的API,结合XPath的语法完成选取XML文档元素节点进行解析操作。

Document中与Xpath相关的API如下:
Node selectSingleNode("表达式") 获取符合表达式的唯一元素
List selectNodes("表达式") 获取符合表达式的元素集合

四大检索方案
1.绝对路径:/根路径/子元素/子元素
image
2.相对路径:./子元素/子元素(./代表了当前元素)
image
3.全文搜索:
//元素 在全文找这个元素
//元素1/元素2 在全文找元素1下面的一级元素2
//元素1//元素2 在全文找元素1下面的全部元素2

image
4.属性查找
//@属性名 在全文检索属性对象
//元素[@属性名] 在全文检索包含该属性的元素对象
//元素//[@属性名=‘值’] 在全文检索包含该属性的元素且属性值为该值的元素对象

image

posted @ 2022-05-22 15:34  夜色哪里都是美  阅读(151)  评论(0)    收藏  举报