package cn.datasource.xml;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
 * 读取xml数据转换成list
 * 引入jar包:dom4j.jar和jaxen.jar
 * @author zhos
 *
 */
public class QueryDrug {
	
	@SuppressWarnings("unchecked")
	public static List<Map<String, String>> startQuery(String code) {
		// 定义一个reader和HashMap,HashMap是用来返回我们要查询的这个用户的信息的
		SAXReader reader = new SAXReader();
		List<Map<String, String>> resultList = new ArrayList<Map<String, String>>();
		try {
			// 得到user.xml的这个doc
			Document doc = reader.read(new File(Constant.DRUGFILEPATH));
			// 得到所有用户的一个集合userList
			List<Element> drugList = doc.selectNodes("//TDrug/drug");
			// 得到迭代器,
			Iterator<Element> iter = drugList.iterator();
			while (iter.hasNext()) {
				Map<String, String> map = new HashMap<String, String>();
				// 得到每一个drug元素,进行判断
				Element e = iter.next();
				// 得到这个drug的ID
				Attribute att = e.attribute("drugID");
				// 如果这个drug的ID和我们查询的ID一致,则将其所有的信息放入到map当中
				if (code!=null && !"".equals(code)) {
					if (code.equals(att.getText())) {
						// 得到这个user的所有子元素
						List<Element> childElements = e.elements();
						// 得到所有子元素的迭代器
						Iterator<Element> childIter = childElements.iterator();
						// 如果还有子元素,则
						while (childIter.hasNext()) {
							// 得到子元素,将其信息放入到map当中
							Element childElement = childIter.next();
							map.put(childElement.getQName().getName(),
									childElement.getText());
						}
					}
				} else {
					// 得到这个drug的所有子元素
					List<Element> childElements = e.elements();
					// 得到所有子元素的迭代器
					Iterator<Element> childIter = childElements.iterator();
					// 如果还有子元素,则
					while (childIter.hasNext()) {
						// 得到子元素,将其信息放入到map当中
						Element childElement = childIter.next();
						map.put(childElement.getQName().getName(),
								childElement.getText());
					}
				}
				
				if (!map.isEmpty()) {
					resultList.add(map);
				}
			}
		} catch (Exception e) {
			System.out.println("读取xml数据失败!");
			e.printStackTrace();
		}
		return resultList;
	}
	
	public static void main(String[] args) {
		System.out.println(QueryDrug.startQuery(""));
	}
}
 最近下载更多
最近下载更多
                 最近浏览更多
最近浏览更多
                
                sipm123     LV1
                2023年3月5日
            
            
        
                xiaoding1999     LV7
                2022年4月1日
            
            
        
                chokkint     LV12
                2021年10月29日
            
            
        
                yuzhiyuan1977     LV2
                2021年8月2日
            
            
        
                15939671505    
                2020年12月18日
            
            
                    暂无贡献等级
            
        
                pxqtsht     LV16
                2020年11月12日
            
            
        
                1234567891011     LV5
                2020年6月27日
            
            
        
                加油干阳神     LV9
                2020年5月13日
            
            
        
                3969138     LV15
                2020年1月15日
            
            
        
                为伊消得     LV1
                2019年8月9日
            
            
        
 
                 
                 
                 
                