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日