1. XML

XML是一种可扩展的标记语言

2. XML 标签

  • 标签由一对尖括号和合法标识符组成 如: <student>
  • 标签必须成对出现 开始标签与结束标签
  • 特殊标签可以不成对,但必须有结束标签 自闭标签
  • 标签中可以定义属性,属性和标签名之间空格隔开,属性值必须用引号引起来 如: html<student age="12"> </student>

3. 文档声明

文档声明必须是第一行第一列

  1. <?xml version= "1.0" encoding= "UTF-8" standalone= "yes"?>
  • version: 该属性必须存在
  • encoding: 可省
  • standalone: 可省 描述xml文件是否依赖其他的xml文件,取值为yes/no
  • 一个xml文档只有一个根标签

3.1. CDATA

  1. <![CDATA[ 内容 ]]>

该标签可以忽略特殊字符,直接显示

4. 解析XML

4.1. DOM对象模型

就是把文档的各个组成部分看做成对应的对象

会把xml文件全部加载到内存

在内存中形成一个树形结构,再获取对应的值

39. XML - 图1

4.2. DOM4J

Dom For Java 是一套XML的解析的API-dom4j

  1. // 获取解析器对象
  2. SAXReader saxReader = new SAXReader();
  3. // 解析加载xml文件
  4. Document read = saxReader.read(new File("../java\\src\\笔记\\_xml\\xml\\student.xml"));
  5. // 读取根标签
  6. Element rootElement = read.getRootElement();
  7. // 获取根标签下 所有student标签
  8. List<Element> student = rootElement.elements("student");
  9. for (Element element : student) {
  10. // 获取student标签的属性
  11. Attribute id = element.attribute("id");
  12. //获取id的值
  13. String value = id.getValue();
  14. System.out.println(value);
  15. //获取name标签的text文本
  16. Element name = element.element("name");
  17. String text = name.getText();
  18. System.out.println(text);
  19. //获取age
  20. Element age = element.element("age");
  21. String text1 = age.getText();
  22. System.out.println(text1);
  23. }

5. 约束

用来限定xml文件中可使用的标签以及属性

5.1. DTD约束

39. XML - 图2

5.1.1. 引入DTD约束

  1. 本地引用 在xml文件声明下面
    1. <!DOCTYPE 根元素名称 SYSTEM 'DTD配置文件路径'>
  1. xml中引用
    1. <!DOCTYPE 根元素名称 [
    2. DTD配置属性
    3. ]>
  1. 网络中引入
    1. <!DOCTYPE 根元素名称 PUBLIC "DTD文件的名称" "DTD文件的url">

5.1.2. 语法规则

39. XML - 图3

5.1.3. 属性规则

39. XML - 图4

5.2. schema

39. XML - 图5

39. XML - 图6

5.2.1. 引入

39. XML - 图7

5.2.2. 定义属性

39. XML - 图8