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

 

XML是一种通用的数据交换格式;

一般的配置文件都是用XML格式

XML一般作为配置文件的存在,用来传输数据

 

XML语法:

1.文档第一行需要声明该文档时XML文档(注意编码格式)

2.标签内容成对出现<xx></xx>

3.如没有内容可以使用但标签<xx/>

4.标签中可以带属性,格式:属性名="属性值"

5.在XML文档中有且仅有1个根标签

6.XML文档严格区分大小写

7.在XML中允许标签嵌套,但是不允许交叉嵌套

 

DOM树

XML基础(学习总结)

 

XML 的各个组成部分都需要使用一个类型来描述:

  1. XML 文件:把 XML 文档加载到内存中,使用 Document 对象来描述整个文档.

  2. 标签/元素:所有的标签,使用 Element 对象来描述.

  3. 属性:标签的属性,使用 Attribute 来描述.

  4. 文本:文本内容(文本/空格·车)使用 Text 来描述.

而这种把 XML 文档加载到内存之后,形成一个一个的对象,这种操作我们称为 DOM 解析。

 

DOM简介

DOM: 把文档中的成员描述成一个个对象.

特点: 在加载的时候,一次性把整个XML文档加载进内存,在内存中形成一颗树(Document对象)/DOM树.

后面使用代码操作的都是Document对象,和文档无关,如需要关联,需要进行同步操作

缺点: 若 XML 文件过大,可能造成内存溢出. 操作 XML 的增删改查(CRUD)的时候很简单,但是性能比较低 下.

 

Document获取

XML 被程序读到内存中会形成一个Document对象,所以要解析 XML ,首先得先获取到 Document 对象

获取文档 Document 对象的步骤

  1. 声明文件 xml 文件 File file = new File(path);

  2. 通过 DocumentBuilderFactory 的 newInstance 方法获取本身的对象 DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

  3. 通过 DocumentBuilderFactory 对象去获取 DocumentBuilder 对象 DocumentBuilder builder = factory.newDocumentBuilder();

  4. 通过 DocumentBuilder 对象去解析获取 Document 对象 builder.parse(file);

     

XML基础(学习总结)

从XML文件中获取信息

常用API: Document 对象: Element getDocumentElement(): 获取根节点. Element 对象: NodeList getElementsByTagName(String name):通过标签名获取标签列表. Node 对象: String getTextContent():获取节点的文本内容 void setTextContent(String content);设置 节点的文本内容(可强转为Element进行操作)

 

同步操作

Transformer : 同步转换器. transform(Source xmlSource, ResultoutputTarget):同步操作 Source : 源是内存中的 Document,所以使用 DOMSource(doc) 实现类 Result : 内容写到磁盘,使用流操作文件,所有使用 StreamResult(file) 实现类

相关文章: