文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输。所以XML在现今应用程序中是非常流行的。
XML文件可以用来作为一种小型数据库存在,但更多时候在项目中都是用来当成配置文件用的,也就避免不了对XML文件的增加,修改,删除,查询等操作。
基于四种方式来读取XML文件:
第一,以DOM的方式实现
DOM是用于平台和语言无关的方式表示XML文档的官方标准,是以层次结构组织的节点或信息片断的 集合。
第二,以SAX的方式实现
分析能够立即开始,而不是等待所有数据被处理,而且不需要将数据存储在内存中。
第三,以JDOM的方式实现
DOM解析器把XML文档转换为一个包含其内容的树,用解析模型的优点是编程容易。
第四,以DOM4J的方式实现
它合并了许多超出基本XML文档表示的功能,包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。
注意点:使用DOM4J解析要导入jar包:dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar包。
// Dom4j解析
SAXReader saxReader = new SAXReader();
try {
// 得到xml文件的路径
String path = ConfigText.class.getResource("config.xml").getPath();
Document document = saxReader.read(path);
//得到根目录的信息
Element element = document.getRootElement();
//得到根目录下的子标签action的集合
Iterator<Element> itaction = element.elementIterator();
while (itaction.hasNext()) {
Element eaction = itaction.next();
//得到子标签action的属性值
System.out.println(eaction.attribute("path").getValue());
System.out.println(eaction.attribute("type").getValue());
//得到子标签action下的forward标签的集合
Iterator<Element> itforward = eaction.elementIterator();
while (itforward.hasNext()) {
Element eforward = itforward.next();
//得到forward标签的属性值
System.out.println(eforward.attribute("name").getValue());
System.out.println(eforward.attribute("path").getValue());
System.out.println(eforward.attribute("redirect").getValue());
}
}
} catch (DocumentException e) {
e.printStackTrace();
}