前言:除了上一节介绍的
Java
对象与XML
之间的互相转换之外,还使用DOM、SAX等XML API解析XML Schema文件中的内容。
一、首先先了解一下什么是XML
XML(Extensible Markup Language)
:可扩展标记语言,是一种标记语言,类似 HTML。- 诞生历史:1998年2月10日,
W3C(World WideⅥiebConsortium,万维网联盟)
公布XML 1.0标准。 - 作用:
① 作为数据交换的一种标准格式(传输数据
)
② 作为配置文件(存储数据
) - 语法:
① XML标签必须有关闭标签,否则是非法的。
② XML标签名对大小写敏感。
③ XML必须正确嵌套。
④ XML必须要有根元素。
⑤ XML标签内的属性值需加引号。
⑥ XML会保留空格。 - 读取XML的方式
①SAX
:根据开发需要,一次性将若干个满足条件的XML标签加载到内存中。
②DOM
:一次性将XML里所有的内容加载到内存中。
注意:开发过程中一般采用DOM读取方式。
- 约束文档:编写文档约束
XML
文档的格式规范。
-
作用
- 设置可以在当前XML中声明的标签类名。
- 设置可以在标签中出现的属性名。
- 设置标签之间父子关系以及兄弟的关系。 分类
-
DTD
:简单约束文档。 -
SCHEMA
:高级约束文档。
详细资料请查阅(仅需了解即可)
- XML约束——DTD约束
- XML中的Schema约束
二、DOM4J解析XML
Java
中有DOM
和SAX
这两种API
来解析XML
,但在开发过程中更多的还是用第三方的开发插件来实现解析XML
的过程,而目前使用比较多的是DOM4J
,这一节就让我们来了解一下DOM4J
。
- 导入依赖
<dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.3</version> </dependency>
- 解析
XML
字符串import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Test { @org.junit.Test public void test() throws DocumentException { String xmlStr = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Student><Name>mingo</Name><Sex>男</Sex><NickName>luffy</NickName><IsSuccess>true</IsSuccess><BirthDay>1991-12-01 00:00:00</BirthDay></Student>"; Document document = DocumentHelper.parseText(xmlStr); Element root = document.getRootElement(); System.out.println(root.getName()); System.out.println(root.element("Name").getText()); System.out.println(root.element("Sex").getText()); } }
- 运行结果截图
其他方式解析XML
请查阅:Java 解析XML数据的4种方式