java程序设计开发,Java高级API-XML学习笔记
Java 高级 API - XML 学习笔记
一、XML 概述
定义:
XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,通过自定义标签描述数据结构,具有平台无关性和自描述性。
典型应用场景:
- 配置文件(如 Spring 的 XML 配置、Tomcat 的 server.xml)
- 数据交换(Web 服务 SOAP 协议、接口数据传输)
- 元数据存储(如 Java 的
persistence.xml
、Maven 的pom.xml
)
二、Java 处理 XML 的核心 API
Java 提供了多种 XML 处理方式,主要分为基于树(DOM)、基于事件(SAX)和绑定(JAXB)三类,以及第三方库(JDOM、DOM4J)。
三、基于 DOM(文档对象模型)的 XML 处理
核心原理
- 将 XML 文档加载为内存中的树形结构(
Document
对象),每个节点(元素、属性、文本)对应一个Node
对象。 - 优点:支持随机访问、修改节点,易于理解;缺点:消耗内存,不适合处理大文件(>10MB)。
核心类(javax.xml.parsers.DocumentBuilder
)
DocumentBuilderFactory
:创建DocumentBuilder
的工厂类。DocumentBuilder
:解析 XML 文件生成Document
对象。Document
:代表整个 XML 文档,提供操作节点的方法(如getElementsByTagName
)。Node
/Element
:代表 XML 节点,Element
是Node
的子类,提供更便捷的元素操作方法(如getAttribute
)。
案例:解析 XML 配置文件
XML 文件(config.xml):
<config>
<database>
<url>jdbc:mysql://localhost:3306/test</url>
<user>username</user>
<password>password</password>
</database>
<server>
<port>8080</port>
<host>localhost</host>
</server>
</config>
代码实现:
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
import org.xml.sax.SAXException;
public class DOMExample {
public static void main(String[] args) {