List of usage examples for com.liferay.portal.kernel.xml SAXReaderUtil createXPath
public static XPath createXPath(String xPathExpression)
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()); }