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日