Jdom 解析 XML

package com.aptech.ServletMVCText.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;

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

import sun.security.jca.JCAUtil;

/**
 * 
* 一句话功能简述:添加ibatis配置文件
* 功能详细描述:〈功能详细描述〉
* @author     鲁文辉
* @e-mail	  286352250@163.com
* @version   [版本号, 2009-6-20 下午07:55:11]
* @see       [相关类/方法]
* @since     [产品/模块版本]
*
 */

public class XMLUtil {
	private static XMLUtil xmlutil=null;
	private FileInputStream fileIn=null;
	private static JCAUtil jdomUtil=null;
	private Document document=null;
	//添加文件路径
	public XMLUtil(String path) {
		try {
			fileIn = new FileInputStream(new File(path));
			SAXBuilder sax = new SAXBuilder();
			document = sax.build(fileIn);
			fileIn.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JDOMException e) {
			e.printStackTrace();
		}
	}
	//单例
	public static XMLUtil getInstance(String path){
		if (xmlutil==null) {
			xmlutil=new XMLUtil(path);
		}
		return xmlutil;
	}
	
	//递归
	private Element getAllElemen(String key,Element element,String forward){
		if(element==null){
			element=document.getRootElement();
		}
		List<Element> list=element.getChildren();
		for(Element temp : list){
			if(temp.getAttributeValue("key").equals(forward)){				
				break;
			}
			else if( temp.getAttributeValue("key").equals(key)){
				element = temp;
				getAllElemen(key,element,forward);
			}			
		}
		return element;
	}
	
	//查询root节点下所有子节点
	public Element getChildElement(String key){
		Element childElement = null;
		Element root = document.getRootElement();
		List<Element> clild = root.getChildren();
		for (Element element : clild) {
		  if( element.getAttributeValue("key").equals(key)){
			  childElement = element;
			   break;
		   }			
		}
		return childElement;
	}
	
	//
	public Element getGrandson(String key,String forward){
		Element grandElement = null;
		Element childElement = getChildElement(key);
	    List<Element> grandson  = childElement.getChildren();
	    for (Element element : grandson) {
			  if( element.getAttributeValue("key").equals(forward)){
				  grandElement = element;
			  }		
		}		
		return grandElement;
	}
	
	public String getValue(String key){
		Element childElement = getChildElement(key);
		String value = childElement.getAttributeValue("value");
		return value;
	}
	
	public String getForward(String key,String forward){
		Element grandElement = getGrandson(key,forward);
//		Element grandElement = getAllElemen(key,null,forward);
		String value=grandElement.getAttributeValue("value");
		return value;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值