1.xml:是一种可扩展的标记语言,它也是由标签组成,不同的是它的标签名可以自定义.
后缀名:.xml.
2.xml作用:用来传输和存储数据。用来作为配置文件;用来跨平台进行数据交换格式.用来作为持久文件存数据.
注意:xml和html都是标记语言,由标签组成.html专门作为前端页面展示,xml用来 作后台数据传输和存储.
3.xml的组成(了解)
3.1:xml标签规范:
3.1.1:XML标签区分大小写.
3.1.2:XML标签一定要关闭.
单标签:<标签名 属性名=“属性值”/>
双标签:<标签名 属性名1=“属性值1” 属性名2=“属性值2”></标签名>
3.1.3:XML文档必须有根元素(根标签)
3.1.4:XML标签要正确嵌套.eg:<标签名1><标签名2></标签名2></标签名1>
3.1.5:XML标签名可以自定义,但是要像正常人取名就可以.
3.1.6:XML标签中换行和空格都会当作标签内容
3.2:文档声明:xml文件的版本,规定文件的字符编码等页面属性。
<? xml version="1.0" encoding="utf-8" ?>必须写在xml文件的第一句。
3.3:属性:每个标签名的括号中可以有0到多个属性。xml标签的属性值一定要用引号。
在同一个标签中,属性不可以重名。
<标签名 属性1="值1" 属性2="值2" ></标签名>
3.4:注释:<!--注释内容 -->。注释不能嵌套。
3.5:实体引用:一些字符拥有特殊的意义.
<![CDATA[特殊字符]]>
3.6:处理指令:用来指挥软件如何解析XML文档。语法:<? ?>
eg:<?xml version="1.0" encoding="utf-8" ?>
3.7:xml约束:规范文件的内容。xml约束的类型:xml Schema ,xml DTD
//1.创建demo4j的读取对象(假如忘记了这个解析器的名字叫什么,我们可以找包找到这个名字,
// 因为我们是要这个解析器对象去读取硬盘上的xml文件他是一个流,所以通过dom4j.io包路径可以猜到SAXReader是我们要的解析器)
SAXReader reader =new SAXReader();
//2.用读取对象将硬盘上的xml文件读取到内存中,用文档对象接收
eg:代码举例
Document studocument =reader.read("Day40\\src\\Students.xml");
//声明一个对象集合用来存解析出来的学生信息
List<Student> stulist =new ArrayList();
//3.解析xml文件
//获得xml根节点对象students
Element root =studocument.getRootElement();
//获得根节点下面的所有字节点-student
List<Element> childs=root.elements();
//遍历所有子节点
for(Element child:childs) {
//创建一个学生对象,用属性来存解析出来的数据
Student stu1=new Student();
//获得节点id属性值,并将值存在学生对象中(因为操作的标签调用attribute获得属性id还要获得他的文本属性
// xml文件默认存的数据都是String类型和HTML一样所以转成Integer类型)
stu1.setId(Integer.valueOf(child.attribute("id").getText()));
//获得当前子节点的属性值
stu1.setName(child.element("name").getText());
stu1.setSex(child.elementText("sex"));
stu1.setAge(Integer.valueOf(child.elementText("age")));
//解析完一个字节点将信息存在集合中
stulist.add(stu1);
}
//输出解析结果
for(Student stu:stulist) {
System.out.println(stu);
}