java解析xml的方式有四种方法:DOM、SAX、JDOM、DOM4j、XPath
dom4j是目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理
所以本文用dom4j作为演示
代码如下:
public class Dom4JforXML {
// 记录学生总数
static int num;
// 定义和
static double sum;
// 定义平均分
static double avg;
public static void main(String[] args) {
SAXReader reader = new SAXReader();// 创建一个读取对象
try {
Document doc = reader.read("student.xml");
Element root = doc.getRootElement();// 获取根节点
List<Element> list = root.elements();// 所有root下第一子节点存进一个集合中
for (Element e : list) {// 遍历节点
int score = Integer.parseInt(e.elementText("score"));
sum = score + sum;
num++;
}
avg = sum / num;
// 保留两位小数
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("共有" + num + "名学生" + "总分为:" + sum);
System.out.println("平均分是" + df.format(avg));
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果: