XML
简介
xml: 可扩展标记语言。
特性:1.xml具有平台无关性,是一门独立的标记语言。
2.xml具有自我描述性。
用途:1:网络数据传输。
2.数据存储。
3.配置文件。
XML 语法格式 *
xml文档通常存储在.xml文件中。
XML文档声明
<? xml version ="1.0" endcoding ="UTF-8" ?>
标记 (标记、标签,节点)
xml文档由一个个标记组成
语法:开始标记(开放标记):<标记名称>
结束标记 (闭合标记):</标记名称>
标记名称:自定义名称,命名规则参考java的标记符
标记内容:开始标记与结束标记之间的内容
一个XML文档中,必须有且只有一个跟标记
<names>
<name>lisi</name>
<name>zhangsan</name>
</names>
标签可以镶嵌,但是不允许交叉
标签的层级称呼
标记名称 允许重复
标记除了开始和结束,还有属性
- 标记的属性 ,在标记开始时描述,有属性名和属性值组成。
<persons>
<person id="1001" age="18">
<name>张三</name>
</person>
</persons>
注释:
- 注释开始 <!–
- 注释结束 -->
面试
java有几种xml解析方式?分别是什么?有啥优缺点?
SAX解析
sax解析器 逐行读取xml文件解析,每当解析到一个标签的开始、结束、内容时…触发事件。
- 优点 :读取大文件节省时间
- 缺点:
1.因为逐行解析,当解析到第n行,第n-1行已经被释放,无法再次操作。
2.因为驱动机制,我们无法得知事件发生时的元素层次,只能添加标记来感知。
3.无法修改内容。
DOM 解析
直接将整个文档,加载到内存,在内层中建立文档树模型,程序员可以通过操作文档树,来完成数据获取,修改,删除
- 优点:文档在内存中加载,可以任意的读取,修改,删除、
- 缺点:文档在内存中,占用大量的内存,无法解析大文件。
JDOM解析
- 与DOM解析一致。
DOM4J解析
- 与DOM解析一致。
DOM4J解析 XML
步骤:
1.引入jar文件 dom4j.jar
2.创建一个指向XML文件的输入流
FileInputStream fis = new FileInputStream("xml文件地址");
3.创建一个XML读取工具对象
SAXReader sr = new SAXReader();
4.使用读取工具对象,读取xml文档的输入流,得到文档对象
Document doc = sr.read(fis);
5.通过文档对象,获取xml文档中的根元素对象
Element root = doc.getRootElement();
文档对象
指加载到内存的整个xml文档
常用方法:
1.通过文档对象,获取xml文档中的根元素对象
Element root = doc.getRootElement();
2.添加根节点
Element root = doc.addElement("根节点名称");
常用方法
1.获取节点名称 String getName();
2.获取几点内容 String getText();
3.设置节点内容 String setText();
4.根据子节点名称获取匹配名称的第一个子节点对象
Element element(String 子节点名称);
5.获取所有的子节点对象
List<Element> element();
6.获取节点的属性值
String attributevalue(String 属性名称);
7.获取子节点的内容
String elementText(String 子节点名称);
8.添加子节点
String addElement(String 子节点名称);
9.添加属性
void addAttribute(String 属性名,String属性值);