XML小知识

XML小知识

1、简介
XML(Extensible Markup Language)可扩展标记语言。

2、文档声明
(1)<?xml version="1.0" encoding="UTF-8"?>

  • versioin:XML文档版本
  • encoding:当前文档的编码

(2)文档声明必须以<?xml开头,以?>结束,中间无空格
(3)文档声明必须从文档的0行0列位置开始

3、注释
<!-- -->注释内容会被XML解析器忽略

4、元素element
(1)空元素:元素闭合 <x/>
(2普通元素的结构开始标签、元素体、结束标签组成 <x> </x>

5、转义字符

  • 字符 < ------ 实体引用: &lt
  • 字符 > -------实体引用: &gt
  • 字符 " --------实体引用: &quot
  • 字符 ’ ---------实体引用:&apos
  • 字符& --------实体引用: &amp

6、CDATA区

<![CDATA[任意内容]]>

(1)在CDATA段中出现的“<”、“>”、“””、“’”、“&”,都无需使用转义字符
(2)在CDATA段中不能包含“]]>”,即CDATA段的结束定界符。

7、DTD约束
(1)DTD(Document Type Definition),文档类型定义
(2)规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等
(3)元素声明

语法:<!ELEMENT 元素名元素描述>
  • 符号 ? ----- 对象可以出现,只能出现一次
  • 符号 * -----对象出现任意多次,可为0次
  • 符号+ -----对象最少出现一次,可以出现多次
  • 符号() -----给元素分组
  • 符号 | ------在列出的对象中选择一个
  • 符号 , -----对象必须按指定的顺序出现

(4)属性声明

<!ATTLIST 元素名
		属性名 属性类型 约束
		属性名 属性类型 约束
		...
		#REQUIRED:说明属性是必须的;required
		#IMPLIED:说明属性是可选的;implied
	>

7、Schemal约束

8、XML解析
(1)常见三种解析方式

  • DOM:要求解析器把整个XML文档装载到内存,并解析成一个Document对象。
  • SAX:是一种速度更快,更有效的方法。它逐行扫描文档,一边扫描一边解析。并以事件驱动的方式进行具体解析,每执行一行,都将触发对应的事件。
  • PULL:Android内置的XML解析方式

(2)常见的解析开发包:

  • JAXP:sun公司提供支持DOM和SAX开发包
  • JDom:dom4j兄弟
  • jsoup:一种处理HTML特定解析开发包
  • dom4j:比较常用的解析开发包,hibernate底层采用

(3)DOM解析
将整个XML文档加载到内存,并获得一个Document对象

9、dom4j使用
(1)核心类SaxReader加载xml文档获得Document
(2)SaxReader对象
read(…) 加载执行xml文档
(3)Document对象
getRootElement() 获得根元素
(4)Element对象

  • elements(…) 获得指定名称的所有子元素。
  • element(…) 获得指定名称第一个子元素。
  • getName()获得当前元素的元素名
  • attributeValue(…) 获得指定属性名的属性值
  • elementText(…) 获得指定名称子元素的文本值
  • getText() 获得当前元素的文本内容
posted @ 2020-03-01 10:15  李泽坤  阅读(89)  评论(0编辑  收藏  举报