1.xml:可扩展性标记语言
1)概念:可扩展:标签名可以自定义
命名规范:不能纯数字(同Java),严格区分大小写
2)功能:用作配置文件和用作网络中的数据传输的载体:xml和Json
Json:一般用于移动端,体积小
xml:一般用于移动端
3)语法:新建文本文件,后缀名为.xml
组成:文档声明:<?xml version="1.0" encoding="UTF-8"?>
根标签:有且只有一个根标签
2.解析xml
<1>:解析思想1):Dom:文档对象类型.将文档的各个组成部分抽取为一个对象
element:标签对象 attribute:属性对象 text:文本属性 comment:注释属性 Node:节点属性 Document:文本对象
解析:将文档一次性加载进入内存,然后将文档各个组成抽取为对象
优点:可对文档进行增删改查---缺点:消耗内存,使用与PC端
解析思想2):SAX解析:基于事件逐行进行解析,一次读取一行,释放一行
优点:不占内存,适用于移动端---缺点:只能查,不可以增删改
<2>常见的xml解析器:Dom4J:第三方jar包,支持Dom思想
Pull解析器:第三方jar包,支持Sax思想
<3>Dom4J解析的步骤
1.导入Dem4Jjar包
2.写student.xml文件
3.创建解析器对象 Reader reader=new SAXReader(new FileInputStream("student.xml"));
4.获取节点对象
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileInputStream("student.xml"));
5.获取标签对象及其文本值
//读取文件
SAXReader reader = new SAXReader();
Document doc = reader.read(new FileInputStream("sadc.xml"));
//1.获取所有的节点
Iterator<Node> nodes = doc.nodeIterator();
while(nodes.hasNext()){
Node next = nodes.next();
System.out.println(next.getName());
}
//获取根节点
Element root = doc.getRootElement();
//获取根节点的子标签
root.element("标签名");
//获取所有的子标签
//方式1.List list = root.elements();
//方式2:Iterator iteraor = root.elementIterator();
//2.获取所有的属性对象
Element stu = root.element("student");
Attribute id = stu.attribute("属性名id");
//获取属性的值
String idValue = root.element("student").attributeValue("属性名id");
//通过迭代的方式获取属性对象
Iterator iterator = root.element("student").attributeIterator();
//3.获取标签下的文本
//方式1:此标签对象+getText()方法
String name = root.element("student").element("name").getText();
//方式2:上层标签+elementText()方法
String name2 = root.element("student").elementText("name");