jdom解析xml文件

library.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
   <book email="zhoujunhui">
     <name>alterrjzjh</name>
     <price>60.0</price>
  </book>
</books>

package test;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import net.sf.json.JSONObject;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;




public class JDomParse {

 	public JDomParse(String xmlpath) {
		SAXBuilder builder = new SAXBuilder(false);//SAXBuilder是一个JDOM解析器, 能将路径中的XML文件解析为Document对象
		try { 
			Document doc = builder.build(xmlpath);// 得到Document,我们以后要进行的所有操作都是对这个Document操作的:
			Element books = doc.getRootElement();// 得到根元素:
			List booklist = books.getChildren();// 得到元素(节点)的集合:
			Map<String,String> map=new HashMap<String,String>();
			for (Iterator iter = booklist.iterator(); iter.hasNext();) {
				Element book = (Element) iter.next(); 
				List l1 = book.getChildren();
				for(Iterator iter1 = l1.iterator(); iter1.hasNext();){
					Element book1 = (Element) iter1.next();  
							System.out.println(book1.getName()); //获取节点的名称
							System.out.println(book1.getValue());//获取节点的值
							map.put(book1.getName(), book1.getValue());//把节点名称和节点值放到键值对应的map集合中
				} 
			} 
			JSONObject json = JSONObject.fromObject(map);//把map转换为json对象
			System.out.println(json.toString()); //输出json字符串

		} catch (JDOMException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {

		String xmlpath = "library.xml";
		new JDomParse(xmlpath);
	}
}

你可能感兴趣的:(dom解析xml)