Java tutorial
/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.content.particular.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public final class XmlConvert { @SuppressWarnings("unchecked") public static List<Map<String, Object>> importXML(File xmlFile, String fileType) { if (xmlFile != null) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); try { List<InputStream> inputStreams = new ArrayList<InputStream>(); //FileType fileType = FileTypeJudge.getType(xmlFile); if (fileType.toLowerCase().equals("application/zip")) { inputStreams = parseXmlZIPFile(xmlFile); } else if (fileType.toLowerCase().equals("text/xml")) { InputStream in = new FileInputStream(xmlFile); inputStreams.add(in); } else { return null; } if (!inputStreams.isEmpty()) { SAXReader reader = new SAXReader(); Document doc = null; for (InputStream inputStream : inputStreams) { try { doc = reader.read(inputStream); if (doc != null) { Element root = doc.getRootElement(); Element metaViewData; Element projecties; for (Iterator<?> metaViewDataIterator = root .elementIterator("MetaViewData"); metaViewDataIterator.hasNext();) { metaViewData = (Element) metaViewDataIterator.next(); for (Iterator<?> projectiesIterator = metaViewData .elementIterator("PROPERTIES"); projectiesIterator.hasNext();) { projecties = (Element) projectiesIterator.next(); List<Element> elements = projecties.elements(); if (!elements.isEmpty()) { Map<String, Object> map = new HashMap<String, Object>(); for (Element element : elements) { map.put(element.getName(), element.getData()); } list.add(map); } } } } } catch (DocumentException e) { } finally { if (doc != null) { doc.clearContent(); doc = null; } } } } } catch (IOException e) { return null; } return list; } return null; } private static List<InputStream> parseXmlZIPFile(File zipFile) { List<InputStream> inputStreams = new ArrayList<InputStream>(); try { ZipFile zfile = new ZipFile(zipFile); Enumeration<? extends ZipEntry> zipEntries = zfile.entries(); ZipEntry zipEntry = null; while (zipEntries.hasMoreElements()) { try { zipEntry = (ZipEntry) zipEntries.nextElement(); inputStreams.add(zfile.getInputStream(zipEntry)); } catch (Exception e) { } finally { } } } catch (Exception e) { } finally { } return inputStreams; } }