基于JDOM的XML解析

一、介绍

       DOM是两位著名的 Java 开发人员兼作者,Brett Mclaughlin 和 Jason Hunter 的创作成果, 2000 年初在类似于Apache协议的许可下,JDOM作为一个开放源代码项目正式开始研发了。它已成长为包含来自广泛的 Java 开发人员的投稿、集中反馈及错误修复的系统,并致力于建立一个完整的基于 Java 平台的解决方案,通过 Java 代码来访问、操作并输出 XML 数据。

二、JDOM简介

       JDOM是由以下几个包组成的
       org.jdom包含了所有的xml文档要素的java类
       org.jdom.adapters包含了与dom适配的java类
       org.jdom.filter包含了xml文档的过滤器类
       org.jdom.input包含了读取xml文档的类
       org.jdom.output包含了写入xml文档的类
       org.jdom.transform包含了将jdomxml文档接口转换为其他xml文档接口
       org.jdom.xpath包含了对xml文档xpath操作的类

三、示例代码

需要引入JDOM的包,本例使用的是JDOM 2.0.6 可在官网下载

需要解析的XML代码test.xml

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book name="book1">
   	<bookname>活着</bookname>
   	<author>余华</author>
   	<price>39</price>
  </book>
 
  <book name="book2">
   	<bookname>资本论</bookname>
   	<author>卡尔马克思</author>
   	<price>88</price>
  </book>
</bookstore>

Java运行代码JDomDemo.java

import java.util.*;
import org.jdom2.*;
import org.jdom2.input.SAXBuilder;
public class JDomDemo {
  public static void main(String[] args) throws Exception{ 
    SAXBuilder sb=new SAXBuilder(); //以包含XML数据的文件为参数,构建一个文档对象sb
    Document doc=sb.build(JDomDemo.class.getClassLoader().getResourceAsStream("test.xml")); //构造文档对象
    Element root=doc.getRootElement(); //获取根元素bookstore
    List list=root.getChildren("book");//取名字为book的所有元素
    for(int i=0;i<list.size();i++){
       Element element=(Element)list.get(i);
       String name = element.getAttributeValue("name");//获取name属性值
       String bookname=element.getChildText("bookname");//取book子元素name的内容
       String author=element.getChildText("author");//取book子元素author的内容
       String price=element.getChildText("price");//取book子元素price的内容
       System.out.println("书籍信息:");
       System.out.println("书籍号:"+name);
       System.out.println("书名:"+bookname);
       System.out.println("作者:"+author);
       System.out.println("价格:"+price);
       System.out.println("-----------------------------------");
       
    }  
  }
}

 运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值