Java开发之框架基础技术
XML简介
XML是Extensible Markup Language的缩写,即可扩展标记语言,是一种简单的数据存储语言,使用一系列简单的标记来描述结构化数据。
xml的特点:
*XML与操作系统,编程语言的开发平台都无关。
*规范统一,实现不同系统之间的数据交互。
XML技术应用广泛,最基本的如网站,应用程序的配置信息一般采用XML文件描述。
XML文档结构
<?xml version="1.0" encoding="UTF-8"?>
<books>
<!--图书信息-->
<book id="bk101">
<title>.NET高级编程</title>
<author>王珊</author>
<description>包含C#框架和网络编程等</description>
</book>
<book id="bk102">
<title>.NET基础编程</title>
<author>李明明</author>
<description>包含XML基础概念和基本用法</description>
</book>
</books>
XML常见应用
1.XML的出现解决了程序间数据传输的问题:
比如QQ之间的数据传送,用XML格式来传送数据,具有良好的可读性,可维护性
2.XML可以做配置文件
XML文件做配置文件可以说非常普遍,比如我们的Tomcat服务器的server.xml,web.xml。再比如我们的structs中的structs-config.xml文件,和hibernate的hibernate.cfg.xml等等。
3.XML可以充当小型的数据库
XML文件可以做小型数据库,也是不错的选择,我们程序中可能用到一些经常要人工配置的数据,如果放在数据库中读取不合适(因为这会增加维护数据库的工作),则可以考虑直接用XML来做小型数据库。这种方式直接读取文件显然要比读数据库快。比如msn中保存用户聊天记录就是用XML文件。
我们可以用浏览器打开:
xml文件的解析
package com.xinsi.qi.utils;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import java.io.File;
import java.util.List;
public class Dom4jXml {
public void test(){
try {
File inputFile = new File("F:\\J2EE学习资料\\demoLes03\\web\\WEB-INF\\test.xml");
SAXReader reader = new SAXReader();
Document document = reader.read(inputFile);
System.out.println("Root element :"+document.getRootElement().getName());
Element classElement = document.getRootElement();
List<Node> nodes = document.selectNodes("/class/part[@id='02']");
System.out.println("--------------------");
for (Node node:nodes){
System.out.println("标签名=:"+node.getName());
System.out.println("姓名:"+node.selectSingleNode("name").getText());
System.out.println("年龄:"+node.selectSingleNode("age").getText());
System.out.println("性别:"+node.selectSingleNode("sex").getText());
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
*首先创建一个xml文件,这里使用的xml文件就是上面的xml例子,使用dom4j,先创建文件,将文件引入。
File inputFile = new File("F:\\J2EE学习资料\\demoLes03\\web\\WEB-INF\\test.xml");
*再创建dom4j的读取文件类,来读取xml文件
SAXReader reader = new SAXReader();
*Document是获取根元素类,控制台输出时,如下
System.out.println("Root element :"+document.getRootElement().getName());
输出Root element :root,该文件的根元素名称为root
总结
目前常用的XML解析技术有4种,分别是DOM,SAX,JDOM,和DOM4J。
DOM是Document Object Model的缩写,即文档对象模型。
Oracle公司提供了JAXP(Java API for XML Processing)来解析XML。JAXP会把XML文档转换成一个DOM树。JAXP包含3个包。
*org.w3c.dom:W3C推荐的用于使用DOM解析XML文档的接口。
*org.xml.sax:用于使用SAX解析XML文档的接口。
*javax.xml.parsers:解析器工厂工具,获得并配置特殊的分析器。
DOM4J是一个非常优秀的JavaXML API,具有性能优异,功能强大和易用的特点。