Example usage for com.liferay.portal.kernel.xml SAXReaderUtil read

List of usage examples for com.liferay.portal.kernel.xml SAXReaderUtil read

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.xml SAXReaderUtil read.

Prototype

public static Document read(URL url) throws DocumentException 

Source Link

Usage

From source file:com.liferay.journal.verify.JournalServiceVerifyProcess.java

License:Open Source License

protected void verifyArticleContents() throws Exception {
    try (LoggingTimer loggingTimer = new LoggingTimer();
            PreparedStatement ps = connection
                    .prepareStatement("select id_ from JournalArticle where (content like "
                            + "'%link_to_layout%') and DDMStructureKey != ''");
            ResultSet rs = ps.executeQuery()) {

        while (rs.next()) {
            long id = rs.getLong("id_");

            JournalArticle article = _journalArticleLocalService.getArticle(id);

            try {
                Document document = SAXReaderUtil.read(article.getContent());

                Element rootElement = document.getRootElement();

                for (Element element : rootElement.elements()) {
                    updateElement(article.getGroupId(), element);
                }//from  w w  w .  j a  v  a  2s .  co  m

                article.setContent(document.asXML());

                _journalArticleLocalService.updateJournalArticle(article);
            } catch (Exception e) {
                _log.error("Unable to update content for article " + article.getId(), e);
            }
        }
    }
}

From source file:com.liferay.journal.web.internal.portlet.action.ActionUtil.java

License:Open Source License

protected static String getElementInstanceId(String content, String fieldName, int index) throws Exception {

    Document document = SAXReaderUtil.read(content);

    String xPathExpression = "//dynamic-element[@name = " + HtmlUtil.escapeXPathAttribute(fieldName) + "]";

    XPath xPath = SAXReaderUtil.createXPath(xPathExpression);

    List<Node> nodes = xPath.selectNodes(document);

    if (index > nodes.size()) {
        return StringPool.BLANK;
    }//  w  w w  .jav  a  2s. co m

    Element dynamicElementElement = (Element) nodes.get(index);

    return dynamicElementElement.attributeValue("instance-id");
}

From source file:com.liferay.journal.web.util.JournalRSSUtil.java

License:Open Source License

protected String processContent(JournalFeed feed, JournalArticle article, String languageId,
        ThemeDisplay themeDisplay, SyndEntry syndEntry, SyndContent syndContent) throws Exception {

    String content = article.getDescription(languageId);

    String contentField = feed.getContentField();

    if (contentField.equals(JournalFeedConstants.RENDERED_WEB_CONTENT)) {
        String ddmRendererTemplateKey = article.getDDMTemplateKey();

        if (Validator.isNotNull(feed.getDDMRendererTemplateKey())) {
            ddmRendererTemplateKey = feed.getDDMRendererTemplateKey();
        }//from www .  ja  v a2 s .co  m

        JournalArticleDisplay articleDisplay = _journalContent.getDisplay(feed.getGroupId(),
                article.getArticleId(), ddmRendererTemplateKey, null, languageId, 1, new PortletRequestModel() {

                    @Override
                    public String toXML() {
                        return _XML_REQUUEST;
                    }

                }, themeDisplay);

        if (articleDisplay != null) {
            content = articleDisplay.getContent();
        }
    } else if (!contentField.equals(JournalFeedConstants.WEB_CONTENT_DESCRIPTION)) {

        Document document = SAXReaderUtil.read(article.getContentByLocale(languageId));

        contentField = HtmlUtil.escapeXPathAttribute(contentField);

        XPath xPathSelector = SAXReaderUtil.createXPath("//dynamic-element[@name=" + contentField + "]");

        List<Node> results = xPathSelector.selectNodes(document);

        if (results.isEmpty()) {
            return content;
        }

        Element element = (Element) results.get(0);

        String elType = element.attributeValue("type");

        if (elType.equals("document_library")) {
            String url = element.elementText("dynamic-content");

            url = processURL(feed, url, themeDisplay, syndEntry);
        } else if (elType.equals("image") || elType.equals("image_gallery")) {
            String url = element.elementText("dynamic-content");

            url = processURL(feed, url, themeDisplay, syndEntry);

            content = content + "<br /><br /><img alt='' src='" + themeDisplay.getURLPortal() + url + "' />";
        } else if (elType.equals("text_box")) {
            syndContent.setType("text");

            content = element.elementText("dynamic-content");
        } else {
            content = element.elementText("dynamic-content");
        }
    }

    return content;
}

From source file:com.liferay.knowledgebase.admin.lar.AdminPortletDataHandlerImpl.java

License:Open Source License

@Override
protected PortletPreferences doImportData(PortletDataContext portletDataContext, String portletId,
        PortletPreferences portletPreferences, String data) throws Exception {

    portletDataContext.importPermissions("com.liferay.knowledgebase.admin",
            portletDataContext.getSourceGroupId(), portletDataContext.getScopeGroupId());

    Document document = SAXReaderUtil.read(data);

    Element rootElement = document.getRootElement();

    importKBArticles(portletDataContext, rootElement);
    importKBTemplates(portletDataContext, rootElement);
    importKBComments(portletDataContext, rootElement);

    return null;//from  w w w .j  a  v a 2s  .  c o m
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static String deleteKBStructureFields(String localizedLanguageId, String content)
        throws PortalException {

    Document document = null;// w w w .  j av a2  s  .  c o m

    try {
        document = SAXReaderUtil.read(content);
    } catch (DocumentException de) {
        throw new PortalException(de);
    }

    Element rootElement = document.getRootElement();

    for (Element kbStructureContentElement : rootElement.elements()) {
        String languageId = kbStructureContentElement.attributeValue("language-id");

        if (!languageId.equals(localizedLanguageId)) {
            continue;
        }

        kbStructureContentElement.detach();

        try {
            return document.formattedString();
        } catch (IOException ioe) {
            return document.asXML();
        }
    }

    return content;
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static List<KBStructureField> getKBStructureFields(String localizedLanguageId, String content)
        throws Exception {

    if (!Validator.isXml(content)) {
        return new ArrayList<KBStructureField>();
    }//from w w w.jav a2  s .  c  o  m

    Document document = SAXReaderUtil.read(content);

    List<KBStructureField> kbStructureFields = new ArrayList<KBStructureField>();

    Element rootElement = document.getRootElement();

    Element kbStructureContentElement = (Element) rootElement
            .selectSingleNode("kb-structure-content[@language-id='" + localizedLanguageId + "']");

    if (kbStructureContentElement == null) {
        String value = rootElement.attributeValue("default-language-id");

        kbStructureContentElement = (Element) rootElement
                .selectSingleNode("kb-structure-content[@language-id='" + value + "']");
    }

    for (Element kbStructureFieldElement : kbStructureContentElement.elements()) {

        String kbStructureFieldId = kbStructureFieldElement.attributeValue("kb-structure-field-id");
        String kbStructureFieldName = StringEscapeUtils
                .unescapeXml(kbStructureFieldElement.attributeValue("name"));
        String kbStructureFieldLabel = StringEscapeUtils
                .unescapeXml(kbStructureFieldElement.attributeValue("label"));
        String kbStructureFieldType = StringEscapeUtils
                .unescapeXml(kbStructureFieldElement.attributeValue("type"));

        KBStructureField kbStructureField = new KBStructureFieldImpl();

        kbStructureField.setKbStructureFieldId(kbStructureFieldId);
        kbStructureField.setName(kbStructureFieldName);
        kbStructureField.setLabel(kbStructureFieldLabel);
        kbStructureField.setType(kbStructureFieldType);

        List<KBStructureOption> kbStructureOptions = new ArrayList<KBStructureOption>();

        for (Element kbStructureOptionElement : kbStructureFieldElement.elements()) {

            String kbStructureOptionId = kbStructureOptionElement.attributeValue("kb-structure-option-id");
            String kbStructureOptionLabel = StringEscapeUtils
                    .unescapeXml(kbStructureOptionElement.attributeValue("label"));
            String kbStructureOptionValue = StringEscapeUtils
                    .unescapeXml(kbStructureOptionElement.attributeValue("value"));

            KBStructureOption kbStructureOption = new KBStructureOptionImpl();

            kbStructureOption.setKbStructureOptionId(kbStructureOptionId);
            kbStructureOption.setLabel(kbStructureOptionLabel);
            kbStructureOption.setValue(kbStructureOptionValue);

            kbStructureOptions.add(kbStructureOption);
        }

        kbStructureField.setKbStructureOptions(kbStructureOptions);

        kbStructureFields.add(kbStructureField);
    }

    return kbStructureFields;
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static String unescapeContent(String content) throws Exception {
    if (!Validator.isXml(content)) {
        return StringPool.BLANK;
    }/*from   w  w  w .j  av a 2  s. c o m*/

    Document document = SAXReaderUtil.read(content);

    Element rootElement = document.getRootElement();

    for (Element kbStructureContentElement : rootElement.elements()) {
        for (Element kbStructureFieldElement : kbStructureContentElement.elements()) {

            String kbStructureFieldName = StringEscapeUtils
                    .unescapeXml(kbStructureFieldElement.attributeValue("name"));
            String kbStructureFieldLabel = StringEscapeUtils
                    .unescapeXml(kbStructureFieldElement.attributeValue("label"));
            String kbStructureFieldType = StringEscapeUtils
                    .unescapeXml(kbStructureFieldElement.attributeValue("type"));

            kbStructureFieldElement.addAttribute("name", kbStructureFieldName);
            kbStructureFieldElement.addAttribute("label", kbStructureFieldLabel);
            kbStructureFieldElement.addAttribute("type", kbStructureFieldType);

            for (Element kbStructureOptionElement : kbStructureFieldElement.elements()) {

                String kbStructureOptionLabel = StringEscapeUtils
                        .unescapeXml(kbStructureOptionElement.attributeValue("label"));
                String kbStructureOptionValue = StringEscapeUtils
                        .unescapeXml(kbStructureOptionElement.attributeValue("value"));

                kbStructureOptionElement.addAttribute("label", kbStructureOptionLabel);
                kbStructureOptionElement.addAttribute("value", kbStructureOptionValue);
            }
        }
    }

    return document.formattedString();
}

From source file:com.liferay.knowledgebase.admin.util.KBStructureContentUtil.java

License:Open Source License

public static String updateKBStructureFields(String localizedLanguageId,
        List<KBStructureField> kbStructureFields, String content) throws PortalException, SystemException {

    Document document = null;/* w  w  w.  j  a  v a 2s.c o m*/

    try {
        document = SAXReaderUtil.read(content);
    } catch (DocumentException de) {
        throw new PortalException(de);
    }

    Element rootElement = document.getRootElement();

    Element oldKBStructureContentElement = (Element) rootElement
            .selectSingleNode("kb-structure-content[@language-id='" + localizedLanguageId + "']");

    if (oldKBStructureContentElement != null) {
        oldKBStructureContentElement.detach();
    }

    Element newKBStructureContentElement = rootElement.addElement("kb-structure-content");

    newKBStructureContentElement.addAttribute("language-id", localizedLanguageId);

    for (KBStructureField kbStructureField : kbStructureFields) {
        String kbStructureFieldId = kbStructureField.getKbStructureFieldId();
        String kbStructureFieldName = StringEscapeUtils.escapeXml(kbStructureField.getName());
        String kbStructureFieldLabel = StringEscapeUtils.escapeXml(kbStructureField.getLabel());
        String kbStructureFieldType = StringEscapeUtils.escapeXml(kbStructureField.getType());

        if (Validator.isNull(kbStructureFieldId)) {
            kbStructureFieldId = String.valueOf(CounterLocalServiceUtil.increment());
        }

        Element kbStructureFieldElement = newKBStructureContentElement.addElement("kb-structure-field");

        kbStructureFieldElement.addAttribute("kb-structure-field-id", kbStructureFieldId);
        kbStructureFieldElement.addAttribute("name", kbStructureFieldName);
        kbStructureFieldElement.addAttribute("label", kbStructureFieldLabel);
        kbStructureFieldElement.addAttribute("type", kbStructureFieldType);

        List<KBStructureOption> kbStructureOptions = kbStructureField.getKbStructureOptions();

        for (KBStructureOption kbStructureOption : kbStructureOptions) {
            String kbStructureOptionId = kbStructureOption.getKbStructureOptionId();
            String kbStructureOptionLabel = StringEscapeUtils.escapeXml(kbStructureOption.getLabel());
            String kbStructureOptionValue = StringEscapeUtils.escapeXml(kbStructureOption.getValue());

            if (Validator.isNull(kbStructureOptionId)) {
                kbStructureOptionId = String.valueOf(CounterLocalServiceUtil.increment());
            }

            Element kbStructureOptionElement = kbStructureFieldElement.addElement("kb-structure-option");

            kbStructureOptionElement.addAttribute("kb-structure-option-id", kbStructureOptionId);
            kbStructureOptionElement.addAttribute("label", kbStructureOptionLabel);
            kbStructureOptionElement.addAttribute("value", kbStructureOptionValue);
        }
    }

    Map<String, Element> elements = new TreeMap<String, Element>();

    for (Element element : rootElement.elements()) {
        String languageId = element.attributeValue("language-id");

        elements.put(languageId, (Element) element.detach());
    }

    String defaultLanguageId = rootElement.attributeValue("default-language-id");

    Element defaultKBStructureContentElement = elements.remove(defaultLanguageId);

    rootElement.add(defaultKBStructureContentElement);

    if (!localizedLanguageId.equals(defaultLanguageId)) {
        for (Map.Entry<String, Element> entry : elements.entrySet()) {
            rootElement.add(entry.getValue());
        }
    } else {
        updateLocalizations(rootElement, defaultKBStructureContentElement, elements);
    }

    try {
        return document.formattedString();
    } catch (IOException ioe) {
        return document.asXML();
    }
}

From source file:com.liferay.layout.admin.web.internal.exportimport.data.handler.LayoutStagedModelDataHandler.java

License:Open Source License

protected void importLayoutPortlets(PortletDataContext portletDataContext, Layout layout, Element layoutElement)
        throws Exception {

    boolean layoutSetPrototypeLinkEnabled = MapUtil.getBoolean(portletDataContext.getParameterMap(),
            PortletDataHandlerKeys.LAYOUT_SET_PROTOTYPE_LINK_ENABLED);

    if (layoutSetPrototypeLinkEnabled && Validator.isNotNull(portletDataContext.getLayoutSetPrototypeUuid())
            && SitesUtil.isLayoutModifiedSinceLastMerge(layout)) {

        return;/*from   w ww  .  j a  va 2s.  c  o m*/
    }

    Map<String, String[]> parameterMap = portletDataContext.getParameterMap();

    boolean permissions = MapUtil.getBoolean(parameterMap, PortletDataHandlerKeys.PERMISSIONS);

    ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();

    LayoutCache layoutCache = new LayoutCache();

    Element portletsElement = layoutElement.element("portlets");

    if (portletsElement == null) {

        // See LPS-75448

        return;
    }

    for (Element portletElement : portletsElement.elements()) {
        String portletPath = portletElement.attributeValue("path");
        String portletId = portletElement.attributeValue("portlet-id");
        long oldPlid = GetterUtil.getLong(portletElement.attributeValue("old-plid"));

        Portlet portlet = _portletLocalService.getPortletById(portletDataContext.getCompanyId(), portletId);

        if (!portlet.isActive() || portlet.isUndeployedPortlet()) {
            continue;
        }

        portletDataContext.setPlid(layout.getPlid());
        portletDataContext.setOldPlid(oldPlid);
        portletDataContext.setPortletId(portletId);

        if (BackgroundTaskThreadLocal.hasBackgroundTask()) {
            _portletDataHandlerStatusMessageSender.sendStatusMessage("portlet", portletId,
                    portletDataContext.getManifestSummary());
        }

        Document portletDocument = SAXReaderUtil.read(portletDataContext.getZipEntryAsString(portletPath));

        portletElement = portletDocument.getRootElement();

        // The order of the import is important. You must always import the
        // portlet preferences first, then the portlet data, then the
        // portlet permissions. The import of the portlet data assumes that
        // portlet preferences already exist.

        _exportImportHelper.setPortletScope(portletDataContext, portletElement);

        long portletPreferencesGroupId = portletDataContext.getGroupId();

        Element portletDataElement = portletElement.element("portlet-data");

        Map<String, Boolean> importPortletControlsMap = _exportImportHelper.getImportPortletControlsMap(
                portletDataContext.getCompanyId(), portletId, parameterMap, portletDataElement,
                portletDataContext.getManifestSummary());

        if (layout != null) {
            portletPreferencesGroupId = layout.getGroupId();
        }

        try {
            _exportImportLifecycleManager.fireExportImportLifecycleEvent(EVENT_PORTLET_IMPORT_STARTED,
                    getProcessFlag(), portletDataContext.getExportImportProcessId(),
                    _portletDataContextFactory.clonePortletDataContext(portletDataContext));

            // Portlet preferences

            _portletImportController.importPortletPreferences(portletDataContext,
                    portletDataContext.getCompanyId(), portletPreferencesGroupId, layout, portletElement, false,
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS),
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_DATA),
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_SETUP),
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_USER_PREFERENCES));

            // Portlet data

            if (importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_DATA)) {

                _portletImportController.importPortletData(portletDataContext, portletDataElement);
            }

            _exportImportLifecycleManager.fireExportImportLifecycleEvent(EVENT_PORTLET_IMPORT_SUCCEEDED,
                    getProcessFlag(), portletDataContext.getExportImportProcessId(),
                    _portletDataContextFactory.clonePortletDataContext(portletDataContext));
        } catch (Throwable t) {
            _exportImportLifecycleManager.fireExportImportLifecycleEvent(EVENT_PORTLET_IMPORT_FAILED,
                    getProcessFlag(), portletDataContext.getExportImportProcessId(),
                    _portletDataContextFactory.clonePortletDataContext(portletDataContext), t);

            throw t;
        } finally {
            _portletImportController.resetPortletScope(portletDataContext, portletPreferencesGroupId);
        }

        // Portlet permissions

        if (permissions) {
            _permissionImporter.importPortletPermissions(layoutCache, portletDataContext.getCompanyId(),
                    portletDataContext.getGroupId(), serviceContext.getUserId(), layout, portletElement,
                    portletId);
        }

        // Archived setups

        try {
            _portletImportController.importPortletPreferences(portletDataContext,
                    portletDataContext.getCompanyId(), portletDataContext.getGroupId(), null, portletElement,
                    false, importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS),
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_DATA),
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_SETUP),
                    importPortletControlsMap.get(PortletDataHandlerKeys.PORTLET_USER_PREFERENCES));
        } catch (Throwable t) {
            throw t;
        } finally {
            _portletImportController.resetPortletScope(portletDataContext, portletPreferencesGroupId);
        }
    }
}

From source file:com.liferay.lms.service.impl.LearningActivityLocalServiceImpl.java

License:Open Source License

public HashMap<String, String> convertXMLExtraContentToHashMap(long actId)
        throws SystemException, PortalException {
    HashMap<String, String> hashMap = new HashMap<String, String>();
    String xml = "";

    try {//  w  w w .  j  av a2 s. co  m
        LearningActivity activity = learningActivityPersistence.fetchByPrimaryKey(actId);

        if (activity != null && !activity.getExtracontent().equals("")) {
            xml = activity.getExtracontent();
        } else {
            return hashMap;
        }
        Document document;

        document = SAXReaderUtil.read(xml);
        Element rootElement = document.getRootElement();

        for (Element key : rootElement.elements()) {

            if (key.getName().contains("document")) {
                hashMap.put(key.getName(), key.attributeValue("id"));
            } else {
                hashMap.put(key.getName(), key.getText());
            }

        }

    } catch (DocumentException e) {
    }

    return hashMap;
}