|
JDOM是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初,JDOM作为一个开放源代码项目正式开始研发。JDOM是一种解析XML的Java工具包。
JDOM的二进制版本下载:http://www.jdom.org/downloads/index.html
把解压后的jdom.jar文件加到项目的类路径中,另外便于调试,还要下载它的源代码。
一、解析XML 要解析的XML文件:
<?xml version="1.0" encoding="gb2312"?> <books> <book email="zhoujunhui"> <name>rjzjh</name> <price>60.0</price> </book> </books>
解析XML的java文件:
1 package com; 2 3 import java.io.IOException; 4 import java.util.*; 5 import org.jdom.*; 6 import org.jdom.input.SAXBuilder; 7 8 public class Test { 9 10 /** 11 * @param args 12 */ 13 public static void main(String[] args) { 14 SAXBuilder sb=new SAXBuilder(false); 15 Document doc = null; 16 try { 17 doc = sb.build("sample.xml"); 18 } catch (JDOMException e) { 19 e.printStackTrace(); 20 } catch (IOException e) { 21 e.printStackTrace(); 22 } 23 Element root=doc.getRootElement(); //获取根元素 24 List list=root.getChildren("book");//取名字为book的所有元素 25 for(int i=0;i<list.size();i++){ 26 Element element=(Element)list.get(i); 27 String email=element.getAttributeValue("email"); 28 String name=element.getChildText("name"); 29 String price=element.getChildText("price"); 30 System.out.println("name:"+name); 31 System.out.println("price:"+price); 32 System.out.println("email:"+email); 33 } 34 } 35 } 36 37
解释代码 引用的类: import java.io.FileOutputStream; import java.io.IOException; import java.util.Iterator; import java.util.List; //下面是引用到JDOM中的类 import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; (1)使用JDOM首先要指定使用什么解析器。如: SAXBuilder builder=new SAXBuilder(false); 这表示使用的是默认的解析器 (2)得到Document,我们以后要进行的所有操作都是对这个Document操作的: Document doc=builder.build(xmlpath); (3)得到根元素: Element books=doc.getRootElement(); 在JDOM中所有的节点(DOM中的概念)都是一个org.jdom.Element类,当然他的子节点也是一个org.jdom.Element类。 (4)得到元素(节点)的集合: List booklist=books.getChildren("book"); 这表示得到“books”元素的所在名称为“book”的元素,并把这些元素都放到一个List集合中 (5)轮循List集合 for (Iterator iter = booklist.iterator(); iter.hasNext();) { Element book = (Element) iter.next(); } 还有一种轮循方法是:共2页: 上一页 1 [2] 下一页
|