在Java JDK,两个内置的XML解析器可供选择- DOM和SAX,两者各有利弊。 以下是一些示例,展示了如何使用Java DOM , SAX和JDOM创建,修改和读取XML文件。
另外,更新了JAXB示例,向您展示了如何将对象转换为XML。
DOM XML解析器
DOM是最容易使用的Java XML Parser。 它解析整个XML文档并将其加载到内存中,并使用Object对其进行建模,以方便遍历nodel。 如果DOM Parser加载包含大量数据的XML文档,则速度很慢并且会占用大量内存。
- 读取XML文件
读取一个XML文件并打印出每个元素。 - 修改现有的XML文件
通过更新元素和属性以及如何删除元素来修改现有的XML文件。 - 创建一个新的XML文件
创建具有新文档,元素和属性的XML文件。 - 计算XML元素
搜索并计算XML文件中元素的总数。
SAX XML解析器
SAX解析器与DOM解析器的工作方式不同,它不会将任何XML文档加载到内存中,也不会创建XML文档的某些对象表示形式。 相反,SAX解析器使用回调函数( org.xml.sax.helpers.DefaultHandler
)通知客户端XML文档结构。
- 读取XML文件
通过SAX回调方法读取XML文件。 - 读取UTF-8 XML文件
通过SAX回调方法读取Unicode XML文件。 - SAX错误– 1字节UTF-8序列的无效字节1
包含Unicode字符的XML文件的常见SAX错误。 - SAX错误–序言中不允许包含内容
无效XML文件内容的常见SAX错误。
与DOM解析器相比,SAX解析器更快并且使用的内存更少。
JDOM XML解析器
JDOM提供了一种表示该文档的方式,以方便,高效地进行读取,操作和编写。 它是DOM和SAX的替代方法。
- 读取XML文件
读取一个XML文件并打印出每个元素。 - 修改现有的XML文件
通过更新元素和属性以及如何删除元素来修改现有的XML文件。 - 创建一个新的XML文件
创建具有新文档,元素和属性的XML文件。
JAXB示例
JAXB,使用批注将Java对象转换为XML文件或从XML文件转换为Java对象。
- JAXB 2.0 Hello World示例
一个详细的示例向您展示使用JAXB进行XML编组(将对象转换为XML)和XML取消编组(将XML转换为对象)。
XML和属性
java.util.Properties类具有内置功能,可以将属性文件转换为XML文件,反之亦然。
参考文献
- Wiki Java_API_for_XML_Processing
- DOM XML解析器文档
- JDOM XML解析器
- SAX有用的快速入门示例
- SAX XML解析器文档
- JAXB官方网站
- 属性文档
- 用Java处理XML