Example usage for org.dom4j.io SAXReader SAXReader

List of usage examples for org.dom4j.io SAXReader SAXReader

Introduction

In this page you can find the example usage for org.dom4j.io SAXReader SAXReader.

Prototype

public SAXReader() 

Source Link

Usage

From source file:com.glaf.jbpm.export.MxJbpmProcessExporter.java

License:Apache License

public void addElement(Document doc, Map<String, Object> context) {
    Element root = doc.getRootElement();
    GraphSession graphSession = null;/*from   w  w  w . ja  v  a  2 s .  c  om*/
    JbpmContext jbpmContext = null;
    try {
        jbpmContext = ProcessContainer.getContainer().createJbpmContext();
        graphSession = jbpmContext.getGraphSession();
        List<ProcessDefinition> processDefinitions = graphSession.findLatestProcessDefinitions();
        if (processDefinitions != null && processDefinitions.size() > 0) {
            Element element = root.addElement("processes");
            Iterator<ProcessDefinition> iterator = processDefinitions.iterator();
            while (iterator.hasNext()) {
                ProcessDefinition pd = iterator.next();
                Element elem = element.addElement("process");
                elem.addAttribute("name", pd.getName());
                elem.addAttribute("description", pd.getDescription());
            }
        }
    } catch (Exception ex) {
        if (LogUtils.isDebug()) {
            ex.printStackTrace();
        }
    } finally {
        Context.close(jbpmContext);
    }

    Element jbpmCfgTemplate = root.addElement("jbpm-cfg-template");

    String configPath = SystemProperties.getConfigRootPath();
    String path = configPath + "/conf/jbpm/template";
    java.io.File directory = new java.io.File(path);
    String[] filelist = directory.list();
    InputStream inputStream = null;
    SAXReader xmlReader = new SAXReader();
    for (int i = 0; i < filelist.length; i++) {
        String filename = directory.getAbsolutePath() + "/" + filelist[i];
        File file = new File(filename);
        if (file.isFile() && file.getName().endsWith(".xml")) {
            try {
                inputStream = new FileInputStream(file);
                Document doc2x = xmlReader.read(inputStream);
                Element root2x = doc2x.getRootElement();
                List<?> elements = root2x.elements("action-definition");
                Iterator<?> iterator = elements.iterator();
                while (iterator.hasNext()) {
                    Element elem = (Element) iterator.next();
                    elem.setParent(jbpmCfgTemplate);
                    elem.setDocument(doc);
                    jbpmCfgTemplate.add(elem);
                }
                inputStream.close();
                inputStream = null;
            } catch (Exception ex) {
                throw new RuntimeException(ex);
            }
        }
    }
}

From source file:com.glaf.jbpm.xml.JpdlXmlReader.java

License:Apache License

public List<String> getTaskNames(InputStream inputStream) {
    List<String> taskNames = new ArrayList<String>();
    SAXReader xmlReader = new SAXReader();
    Document doc = null;/*from  w ww.  ja v  a  2s.c  om*/
    try {
        doc = xmlReader.read(inputStream);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    Element root = doc.getRootElement();
    List<?> rows = root.elements("task-node");
    Iterator<?> iterator = rows.iterator();
    while (iterator.hasNext()) {
        Element element = (Element) iterator.next();
        List<?> tasks = element.elements("task");
        Iterator<?> iter = tasks.iterator();
        while (iter.hasNext()) {
            Element elem = (Element) iter.next();
            String taskName = elem.attributeValue("name");
            if (taskNames.contains(taskName)) {
                throw new RuntimeException("task name '" + taskName + "' is exists.");
            }
            taskNames.add(taskName);
        }
    }

    return taskNames;
}

From source file:com.glaf.jbpm.xml.JpdlXmlReader.java

License:Apache License

public List<Todo> read(InputStream inputStream) {
    List<Todo> todoList = new java.util.ArrayList<Todo>();
    SAXReader xmlReader = new SAXReader();
    int sortNo = 1;
    try {/*from  w w  w. j a v  a  2  s . co  m*/
        Document doc = xmlReader.read(inputStream);
        Element root = doc.getRootElement();
        String processName = root.attributeValue("name");
        String moduleName = root.elementText("description");
        List<?> rows = root.elements("task-node");
        Iterator<?> iterator = rows.iterator();
        while (iterator.hasNext()) {
            Element element = (Element) iterator.next();
            List<?> tasks = element.elements("task");
            Iterator<?> iter = tasks.iterator();
            while (iter.hasNext()) {
                Element elem = (Element) iter.next();
                String taskName = elem.attributeValue("name");
                if (taskName.startsWith("task55")) {
                    continue;
                }
                Todo model = new Todo();
                model.setSortNo(sortNo++);
                model.setProcessName(processName);
                model.setModuleName(moduleName);
                model.setTitle(moduleName + " " + elem.attributeValue("description") + "??");
                model.setContent(moduleName + " " + elem.attributeValue("description") + "??");
                model.setCode(processName + "_" + taskName);
                model.setTaskName(taskName);
                model.setProvider("jbpm");
                model.setLinkType(processName + "_" + taskName);
                String detail_url = conf.get("jbpm_task_detail_url");
                String list_url = conf.get("jbpm_task_url");
                model.setLink(detail_url + "&rowId=#{rowId}&x_method=view&app_name=" + processName);
                model.setListLink(list_url + "&taskType=running&app_name=" + processName);
                model.setLimitDay(2);
                model.setXa(6);
                model.setXb(6);
                todoList.add(model);
            }
        }
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    return todoList;
}

From source file:com.glaf.mail.MxMailHelper.java

License:Apache License

public Map<String, String> getAttributes(String attribute) {
    Map<String, String> dataMap = new java.util.HashMap<String, String>();
    StringReader stringReader = new StringReader(attribute);
    SAXReader xmlReader = new SAXReader();
    try {/* www.  j ava 2  s .  c om*/
        Document doc = xmlReader.read(stringReader);
        Element root = doc.getRootElement();
        List<?> elements = root.elements("element");
        if (elements != null && elements.size() > 0) {
            Iterator<?> iterator = elements.iterator();
            while (iterator.hasNext()) {
                Element element = (Element) iterator.next();
                String name = element.attributeValue("name");
                String value = element.attributeValue("value");
                if (StringUtils.isEmpty(value)) {
                    value = element.getStringValue();
                }
                dataMap.put(name, value);
            }
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return dataMap;
}

From source file:com.glaf.mail.xml.MailXmlReader.java

License:Apache License

public List<MailTemplate> read(java.io.InputStream inputStream) {
    List<MailTemplate> mailTemplates = new java.util.ArrayList<MailTemplate>();
    SAXReader xmlReader = new SAXReader();
    Document doc = null;/*from  w w w.j  av  a  2  s.  c  om*/
    try {
        doc = xmlReader.read(inputStream);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    Element root = doc.getRootElement();
    List<?> rows = root.elements();
    Iterator<?> iterator = rows.iterator();
    while (iterator.hasNext()) {
        Element element = (Element) iterator.next();
        String mailId = element.attributeValue("id");
        String title = element.attributeValue("title");
        String templateId = element.elementText("templateId");
        String templatePath = element.elementText("templatePath");

        MailTemplate mt = new MailTemplate();
        mt.setTitle(title);
        mt.setMailDefId(mailId);
        mt.setTemplateId(templateId);
        mt.setTemplatePath(templatePath);
        mt.setProperties(this.readProperties(element));
        mt.setContent(element.elementText("content"));
        mt.setDescription(element.elementText("description"));

        List<?> datasets = element.elements("dataset");
        Iterator<?> iter = datasets.iterator();
        while (iter.hasNext()) {
            Element elem = (Element) iter.next();
            MailDataSet mailDS = new MailDataSet();
            mailDS.setProperties(this.readProperties(elem));

            List<?> rowsets = elem.elements("rowset");
            Iterator<?> it = rowsets.iterator();
            while (it.hasNext()) {
                Element em = (Element) it.next();
                MailRowSet rs = new MailRowSet();
                rs.setQuery(em.elementTextTrim("query"));
                rs.setMapping(em.attributeValue("mapping"));
                rs.setMailMgr(em.attributeValue("mailMgr"));
                rs.setMailMgrClassName(em.attributeValue("mailMgrClassName"));
                rs.setMailMgrMapping(em.attributeValue("mailMgrMapping"));
                rs.setDataMgr(em.attributeValue("dataMgr"));
                rs.setDataMgrBeanId(em.attributeValue("dataMgrBeanId"));
                rs.setDataMgrClassName(em.attributeValue("dataMgrClassName"));
                rs.setProperties(this.readProperties(em));
                String singleResult = em.attributeValue("singleResult");
                if ("true".equals(singleResult)) {
                    rs.setSingleResult(true);
                }
                mailDS.addRowSet(rs);
            }

            mt.addDataSet(mailDS);
        }
        mailTemplates.add(mt);
    }

    return mailTemplates;
}

From source file:com.glaf.report.xml.ReportDefinitionReader.java

License:Apache License

public List<ReportDefinition> read(java.io.InputStream inputStream) {
    List<ReportDefinition> reports = new java.util.ArrayList<ReportDefinition>();
    SAXReader xmlReader = new SAXReader();
    Document doc = null;//w  ww .  j  av a 2  s  . c  om
    try {
        doc = xmlReader.read(inputStream);
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
    Element root = doc.getRootElement();
    List<?> rows = root.elements();
    Iterator<?> iterator = rows.iterator();
    while (iterator.hasNext()) {
        Element element = (Element) iterator.next();
        String reportId = element.attributeValue("id");
        String templateId = element.elementText("templateId");
        String templateFile = element.elementText("templateFile");

        ReportDefinition rdf = new ReportDefinition();
        rdf.setReportId(reportId);
        rdf.setTemplateId(templateId);
        rdf.setTemplateFile(templateFile);
        rdf.setProperties(this.readProperties(element));

        List<?> datasets = element.elements("dataset");
        Iterator<?> iter = datasets.iterator();
        while (iter.hasNext()) {
            Element elem = (Element) iter.next();
            ReportDataSet rds = new ReportDataSet();
            rds.setDatasourceName(elem.attributeValue("datasourceName"));
            rds.setProperties(this.readProperties(elem));

            List<?> rowsets = elem.elements("rowset");
            Iterator<?> it = rowsets.iterator();
            while (it.hasNext()) {
                Element em = (Element) it.next();
                ReportRowSet rs = new ReportRowSet();
                rs.setQuery(em.elementTextTrim("query"));
                rs.setMapping(em.attributeValue("mapping"));
                rs.setRptMgr(em.attributeValue("rptMgr"));
                rs.setRptMgrClassName(em.attributeValue("rptMgrClassName"));
                rs.setRptMgrMapping(em.attributeValue("rptMgrMapping"));
                rs.setDataMgr(em.attributeValue("dataMgr"));
                rs.setDataMgrBeanId(em.attributeValue("dataMgrBeanId"));
                rs.setDataMgrClassName(em.attributeValue("dataMgrClassName"));
                rs.setProperties(this.readProperties(em));
                String singleResult = em.attributeValue("singleResult");
                if ("true".equals(singleResult)) {
                    rs.setSingleResult(true);
                }
                rds.addRowSet(rs);
            }

            rdf.addDataSet(rds);
        }
        reports.add(rdf);
    }

    return reports;
}

From source file:com.glaf.wechat.sdk.WeixinExecutor.java

License:Apache License

private void parseInputStream() throws Exception {
    SAXReader xmlReader = new SAXReader();
    Document doc = null;// www  .  j  a v a 2 s.  c o m
    try {
        doc = xmlReader.read(request.getInputStream());
    } catch (DocumentException ex) {
        ex.printStackTrace();
        doc = xmlReader.read(new ByteArrayInputStream(request.getParameter("xml").getBytes("UTF-8")));
    }

    String uri = request.getRequestURI();
    String id = uri.substring(uri.lastIndexOf("/") + 1);
    Long accountId = Long.parseLong(id);
    WxUser user = WxIdentityFactory.getUserByAccountId(accountId);

    Element root = doc.getRootElement();
    logger.debug(root.asXML());

    String type = root.elementText(IMessage.TAG_MSGTYPE);

    if (StringUtils.equalsIgnoreCase(type, MESSAGE_TEXT)) {
        message = new TextMessage();
        messageHandler = new TextMessageHandler();
    } else if (StringUtils.equalsIgnoreCase(type, MESSAGE_EVENT)) {
        // do subscribe event
        message = new EventMessage();
        messageHandler = new EventMessageHandler();
    } else if (StringUtils.equalsIgnoreCase(type, MESSAGE_IMAGE)) {
        message = new ImageMessage();
        messageHandler = new ImageMessageHandler();
    } else if (StringUtils.equalsIgnoreCase(type, MESSAGE_LINK)) {
        message = new LinkMessage();
        messageHandler = new LinkMessageHandler();
    } else if (StringUtils.equalsIgnoreCase(type, MESSAGE_LOCATION)) {
        message = new LocationMessage();
        messageHandler = new LocationMessageHandler();
    } else if (StringUtils.equalsIgnoreCase(type, MESSAGE_VOICE)) {
        message = new VoiceMessage();
        messageHandler = new VoiceMessageHandler();
    } else if (StringUtils.equalsIgnoreCase(type, MESSAGE_VIDEO)) {
        message = new VideoMessage();
        messageHandler = new VideoMessageHandler();
    }

    message.setRoot(root);
    message.setAccountId(accountId);
    message.setCustomer(user.getActorId());
    message.setContextPath(request.getContextPath());
    message.setRequestParameters(RequestUtils.getParameterMap(request));
    String serviceUrl = WechatUtils.getServiceUrl(request);
    message.setServiceUrl(serviceUrl);
    message.setRemoteIPAddr(RequestUtils.getIPAddress(request));

    // do the default/common parse!
    messageHandler.parseMessage(message, root);
}

From source file:com.glaf.wechat.util.MessageUtils.java

License:Apache License

/**
 * ???XML/*from   ww w  .j  a v a  2s  . c  o  m*/
 * 
 * @param request
 * @return
 * @throws Exception
 */
@SuppressWarnings("unchecked")
public static Map<String, String> parseXml(HttpServletRequest request) {
    // ?HashMap
    Map<String, String> map = new java.util.concurrent.ConcurrentHashMap<String, String>();

    // request??
    InputStream inputStream = null;
    // ??
    SAXReader reader = new SAXReader();
    try {
        inputStream = request.getInputStream();

        Document document = reader.read(inputStream);
        // xml
        Element root = document.getRootElement();
        // ?
        List<Element> elementList = root.elements();

        // ???
        for (Element e : elementList) {
            map.put(e.getName(), e.getText());
        }
    } catch (Exception ex) {
        ex.printStackTrace();
        throw new RuntimeException(ex);
    } finally {
        try {
            // ?
            if (inputStream != null) {
                inputStream.close();
                inputStream = null;
            }
        } catch (IOException ex) {
        }
    }

    return map;
}

From source file:com.globalsight.connector.mindtouch.util.MindTouchHelper.java

License:Apache License

public static Document getDocument(String xml) throws DocumentException {
    SAXReader reader = new SAXReader();
    return reader.read(new InputSource(new StringReader(xml)));
}

From source file:com.globalsight.everest.edit.offline.OfflineEditManagerLocal.java

License:Apache License

private DetectionResult determineUploadFormat(File p_tmpFile, User p_user) throws Exception {
    DetectionResult rslt = new DetectionResult();

    try {/*www . jav  a  2 s.  c  o  m*/
        // First we assume the basics - that this is a text file upload
        FormatTwoEncodingSniffer conv = new FormatTwoEncodingSniffer();
        FileInputStream is = new FileInputStream(p_tmpFile);
        InputStreamReader isr = conv.convertFileToUnicode(is);
        BufferedReader br = new BufferedReader(isr);

        String content = br.readLine();
        RE rtfRe = new RE(RE_RTF1_FILE_SIGNATURE);
        RE txtRe = new RE(RE_OFFLINE_TEXT_FILE_SIGNATURE);

        if (rtfRe.match(content)) {
            RtfAPI api = new RtfAPI();
            RtfDocument doc = api.parse(br);
            doc = api.optimize(doc);

            if (isParaViewOneWorkFile(doc)) {
                s_category.debug("Detected UPLOAD_TYPE_GS_PARAVIEW_1");

                rslt.m_type = UPLOAD_TYPE_GS_PARAVIEW_1;
                rslt.m_rtfDoc = doc;
                rslt.m_reader = br;
            } else if (isRtfWrappedTextWorkFile(doc)) {
                s_category.debug("Detected UPLOAD_TYPE_GS_RTF_WRAPPED_UNICODE_TEXT");

                rslt.m_type = UPLOAD_TYPE_GS_WRAPPED_UNICODE_TEXT;
                rslt.m_rtfDoc = doc;
                rslt.m_reader = br;
            } else {
                s_category.debug("Detected UPLOAD_TYPE_UNKNOWN");

                rslt.m_type = UPLOAD_TYPE_UNKNOWN;
                rslt.m_rtfDoc = null;
                rslt.m_reader = null;
            }
        } else if (txtRe.match(content)) {
            s_category.debug("Detected UPLOAD_TYPE_GS_UNICODE_TEXT.");

            rslt.m_type = UPLOAD_TYPE_GS_UNICODE_TEXT;

            // RESET NOTE: We reset the reader by creating a new
            // one using the detected encoding.

            // The number of characters read by readLine() is
            // dependent on whether or not there are any carriage
            // returns in the file, so it is too risky. According
            // to the mark method, reset may fail.
            rslt.m_reader = new BufferedReader(
                    new InputStreamReader(new FileInputStream(p_tmpFile), isr.getEncoding()));
        } else if (content.indexOf("<?xml") > -1) {
            content = br.readLine();
            // read the second non-null line
            while (content == null || "".equals(content.trim())) {
                content = br.readLine();
            }
            // Xliff file
            if (content.indexOf("<xliff") > -1) {
                if (content.contains("2.0")) {
                    rslt.m_type = UPLOAD_TYPE_XLF20;
                } else {
                    rslt.m_type = UPLOAD_TYPE_XLF;
                }
            }
            // TTX file
            else if (content.indexOf("<TRADOStag") > -1) {
                rslt.m_type = UPLOAD_TYPE_TTX;

                String ttxContent = "";
                try {
                    SAXReader reader = new SAXReader();
                    Document doc = reader.read(p_tmpFile);
                    TTXParser parser = new TTXParser();
                    boolean isParsingTTXForGS = true;
                    ttxContent = parser.parseToTxt(doc, isParsingTTXForGS);
                } catch (Exception de) {
                    s_category.error("ttx parse error");
                    s_category.error(de.getMessage(), de);
                    isXlfOrTtxException = true;
                    throw de;
                }

                StringReader sr = new StringReader(ttxContent);
                rslt.m_reader = new BufferedReader(sr);
            }
        } else {
            // Now, we may have correctly detected unicode but it
            // lacks our signature. At this point we can only
            // assume this is a native **unextracted** unicode
            // text file.
            s_category.debug("Detected UPLOAD_TYPE_UNKNOWN_UNICODE_TEXT.");

            rslt.m_type = UPLOAD_TYPE_UNKNOWN_UNICODE_TEXT;

            // see the "RESET NOTE:" above
            rslt.m_reader = new BufferedReader(
                    new InputStreamReader(new FileInputStream(p_tmpFile), isr.getEncoding()));
        }
    } catch (Exception ex) {
        boolean isExHandled = false;
        try {
            // If we received an exception while trying to convert
            // the file to unicode text above, we know the file is
            // not a standard offlineTextFile. So now lets try RTF.
            // Note: rtf is always ASCII.

            FileInputStream is = new FileInputStream(p_tmpFile);
            InputStreamReader isr = new InputStreamReader(is, "ASCII");
            BufferedReader br = new BufferedReader(isr);

            // First - confirm we have some form of RTF
            String tmp = br.readLine();
            RE matcher = new RE(RE_RTF1_FILE_SIGNATURE);
            if (matcher.match(tmp)) {
                isExHandled = true;
                // If we have RTF, parse it into an RTF object model.

                // see the "RESET NOTE:" above
                br = new BufferedReader(new InputStreamReader(new FileInputStream(p_tmpFile), "ASCII"));

                RtfAPI api = new RtfAPI();
                RtfDocument doc = api.parse(br);
                doc = api.optimize(doc);

                if (isParaViewOneWorkFile(doc)) {
                    s_category.debug("Detected UPLOAD_TYPE_GS_PARAVIEW_1");

                    rslt.m_type = UPLOAD_TYPE_GS_PARAVIEW_1;
                    rslt.m_rtfDoc = doc;
                    rslt.m_reader = br;
                } else if (isRtfWrappedTextWorkFile(doc)) {
                    s_category.debug("Detected UPLOAD_TYPE_GS_RTF_WRAPPED_UNICODE_TEXT");

                    rslt.m_type = UPLOAD_TYPE_GS_WRAPPED_UNICODE_TEXT;
                    rslt.m_rtfDoc = doc;
                    rslt.m_reader = br;
                } else {
                    s_category.debug("Detected UPLOAD_TYPE_UNKNOWN");

                    rslt.m_type = UPLOAD_TYPE_UNKNOWN;
                    rslt.m_rtfDoc = null;
                    rslt.m_reader = null;
                }
            }
        } catch (Exception ex2) {
            s_category.error("Failed to run the RTF detection process. "
                    + "Retuning UPLOAD_TYPE_DETECTION_ERROR. The exception follows: \n" + ex2.toString());

            rslt.m_type = UPLOAD_TYPE_DETECTION_ERROR;
        }

        if (isXlfOrTtxException) {
            throw ex;
        }

        if (!isExHandled) {
            // throw ex;
            s_category.debug("Detected UPLOAD_TYPE_UNKNOWN");

            rslt.m_type = UPLOAD_TYPE_UNKNOWN;
            rslt.m_rtfDoc = null;
            rslt.m_reader = null;
        }
    }

    return rslt;
}