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

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

Introduction

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

Prototype

public static XPath createXPath(String xPathExpression) 

Source Link

Usage

From source file:com.liferay.journal.util.impl.JournalUtil.java

License:Open Source License

private static Element _getElementByInstanceId(Document document, String instanceId) {

    if (Validator.isNull(instanceId)) {
        return null;
    }//from w w  w .j a v a2 s  . c  om

    XPath xPathSelector = SAXReaderUtil
            .createXPath("//dynamic-element[@instance-id=" + HtmlUtil.escapeXPathAttribute(instanceId) + "]");

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

    if (nodes.size() == 1) {
        return (Element) nodes.get(0);
    } else {
        return null;
    }
}

From source file:com.liferay.journal.util.impl.JournalUtil.java

License:Open Source License

private static void _removeOldContent(Stack<String> path, Element contentElement, Document xsdDocument,
        String elementPath) {//w w  w  .ja  va2s.  co m

    String name = contentElement.attributeValue("name");

    if (Validator.isNull(name)) {
        return;
    }

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

    String fullPath = elementPath + "/" + localPath;

    XPath xPathSelector = SAXReaderUtil.createXPath(fullPath);

    List<Node> curNodes = xPathSelector.selectNodes(xsdDocument);

    if (curNodes.isEmpty()) {
        contentElement.detach();
    }

    path.push(localPath);

    _removeOldContent(path, contentElement, xsdDocument);

    path.pop();
}

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;
    }//ww w .  ja v a2s. c o  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 w w  w  . j  a  v  a 2 s .  c o 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.portlet.dynamicdatamapping.model.impl.DDMStructureImpl.java

License:Open Source License

public Map<String, String> getFields(String fieldName, String attributeName, String attributeValue,
        String locale) {/*ww  w .java  2  s.  c o  m*/

    try {
        StringBundler sb = new StringBundler(7);

        sb.append("//dynamic-element[@name=\"");
        sb.append(fieldName);
        sb.append("\"] //dynamic-element[@");
        sb.append(attributeName);
        sb.append("=\"");
        sb.append(attributeValue);
        sb.append("\"]");

        XPath xPathSelector = SAXReaderUtil.createXPath(sb.toString());

        Node node = xPathSelector.selectSingleNode(getDocument());

        if (node != null) {
            return _getField((Element) node.asXPathResult(node.getParent()), locale);
        }
    } catch (Exception e) {
        _log.error(e, e);
    }

    return null;
}

From source file:com.liferay.portlet.dynamicdatamapping.model.impl.DDMStructureImpl.java

License:Open Source License

private Map<String, String> _getField(Element element, String locale) {
    Map<String, String> field = new HashMap<String, String>();

    List<String> availableLocales = getAvailableLocales();

    if ((locale != null) && !(availableLocales.contains(locale))) {
        locale = getDefaultLocale();//from  w  ww . ja v a  2 s  .  co m
    }

    String xPathExpression = "meta-data[@locale=\"".concat(locale).concat("\"]");

    XPath xPathSelector = SAXReaderUtil.createXPath(xPathExpression);

    Node node = xPathSelector.selectSingleNode(element);

    Element metaDataElement = (Element) node.asXPathResult(node.getParent());

    if (metaDataElement != null) {
        List<Element> childMetaDataElements = metaDataElement.elements();

        for (Element childMetaDataElement : childMetaDataElements) {
            String name = childMetaDataElement.attributeValue("name");
            String value = childMetaDataElement.getText();

            field.put(name, value);
        }
    }

    for (Attribute attribute : element.attributes()) {
        field.put(attribute.getName(), attribute.getValue());
    }

    return field;
}

From source file:com.liferay.portlet.dynamicdatamapping.model.impl.DDMStructureImpl.java

License:Open Source License

private Map<String, Map<String, String>> _getFieldsMap(String locale) {
    if (_fieldsMap == null) {
        synchronized (this) {
            if (_fieldsMap == null) {
                _fieldsMap = new LinkedHashMap<String, Map<String, String>>();

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

                List<Node> nodes = xPathSelector.selectNodes(getDocument());

                Iterator<Node> itr = nodes.iterator();

                while (itr.hasNext()) {
                    Element element = (Element) itr.next();

                    String name = element.attributeValue("name");

                    _fieldsMap.put(name, _getField(element, locale));
                }//  w  w w . j ava2  s  .com
            }
        }
    }

    return _fieldsMap;
}

From source file:com.liferay.portlet.dynamicdatamapping.service.impl.DDMStructureLocalServiceImpl.java

License:Open Source License

protected void appendNewStructureRequiredFields(DDMStructure structure, Document templateDocument) {

    String xsd = structure.getXsd();

    Document structureDocument = null;

    try {/*from w w  w.j  av  a 2 s . c  o m*/
        structureDocument = SAXReaderUtil.read(xsd);
    } catch (DocumentException de) {
        if (_log.isWarnEnabled()) {
            _log.warn(de, de);
        }

        return;
    }

    Element templateElement = templateDocument.getRootElement();

    XPath structureXPath = SAXReaderUtil
            .createXPath("//dynamic-element[.//meta-data/entry[@name=\"required\"]=" + "\"true\"]");

    List<Node> nodes = structureXPath.selectNodes(structureDocument);

    Iterator<Node> itr = nodes.iterator();

    while (itr.hasNext()) {
        Element element = (Element) itr.next();

        String name = element.attributeValue("name");

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

        if (!templateXPath.booleanValueOf(templateDocument)) {
            templateElement.add(element.createCopy());
        }
    }
}

From source file:com.liferay.portlet.dynamicdatamapping.storage.XMLStorageAdapter.java

License:Open Source License

private Element _getElementByName(Document document, String name) {
    XPath xPathSelector = SAXReaderUtil.createXPath("//dynamic-element[@name='".concat(name).concat("']"));

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

    if (nodes.size() == 1) {
        return (Element) nodes.get(0);
    } else {/* www .ja v  a  2 s. co m*/
        return null;
    }
}

From source file:com.liferay.portlet.dynamicdatamapping.storage.XMLStorageAdapter.java

License:Open Source License

private XPath _parseCondition(Condition condition) {
    StringBundler sb = new StringBundler(4);

    sb.append("//dynamic-element");
    sb.append(StringPool.OPEN_BRACKET);/*  w w  w.  j  a va  2s  .c  o  m*/
    sb.append(_toXPath(condition));
    sb.append(StringPool.CLOSE_BRACKET);

    return SAXReaderUtil.createXPath(sb.toString());
}