解析XML 之JDOM 方法

 

要使用JDOM 解析xml 需要下载JDOM jar包 ( 下载地址:http://jdom.org/downloads/index.html)

JDOMJdom是用Java语言读、写、操作XML的新API函数一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAXDOM的功能有效地结合起来。

JDOM 解析xml 案例:

//准备工作
		//1. 创建SAXBuilder
		SAXBuilder saxBuilder = new SAXBuilder();
		//2. 创建一个输入流,将xml文件加载到输入流中
		try {
			InputStream inputStream = new FileInputStream("test.xml");
			//解决文档读取出现乱码的问题,将读取的xml文件按照UTF-8的格式加载如输入流中。
			InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8"); 
			Document document=	saxBuilder.build(inputStreamReader);
			//获取xml文档的根目录
		      Element root=   document.getRootElement();
		      //获取根目录下的所有子节点
		     List studentsList= root.getChildren();
		     for(Element student: studentsList) {
		    	 System.out.println("开始解析第 " + ( studentsList.indexOf(student) + 1 ) + " 个学生 ");
		    	 
		    	// 解析student 属性名和属性值 
		    	 
                // 不清楚属性具体信息
		    	 List attriLists = student.getAttributes();
		    	 for(Attribute attr : attriLists) {
		    		 System.out.print("开始解析 第 " + attriLists.indexOf(attr) + 1);
		    		 System.out.println(": " + attr.getName() + " = " + attr.getValue());
		    	 }
		    	 // 知道属性名称,获取属性值
		    	Attribute attr_id= student.getAttribute("id");
		    	System.out.println("属性 id = " +attr_id.getValue());
		    	
		    	//解析 student下节点名和节点值
		        List studentChild=	student.getChildren();
		        for(Element e:studentChild) {
		        	System.out.println( "节点 " + e.getName() + " = " + e.getValue());
		        }
		     }
		     
			} catch (JDOMException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (FileNotFoundException e) {
			  e.printStackTrace();
		    }catch (IOException e) {
				e.printStackTrace();
			}

Note:

所使用的类均来自于JDOM 包。

 

你可能感兴趣的:(Java)