解析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<Element> studentsList= root.getChildren();
		     for(Element student: studentsList) {
		    	 System.out.println("开始解析第 " + ( studentsList.indexOf(student) + 1 ) + " 个学生 ");
		    	 
		    	// 解析student 属性名和属性值 
		    	 
                // 不清楚属性具体信息
		    	 List<Attribute> 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<Element> 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 包。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值