首页>代码>dom4j操作xml文件读取插入的实例>/Querydrug/src/cn/datasource/xml/QueryDrug.java
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(""));
	}
}
最近下载更多
我是helloworld  LV23 2023年6月12日
chokkint  LV12 2021年10月29日
kld113  LV20 2019年3月5日
07311514  LV9 2019年2月22日
爱情的本质  LV16 2019年2月10日
murphyLu  LV12 2019年1月4日
wyx065747  LV67 2018年12月2日
最代码官方  LV168 2018年11月30日
最近浏览更多
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日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友