public static List getNcMLElements(String path, Document doc) { // XPath doesn't support default namespaces, so we add nc as a prefix for the tags within the // namespace!!! if (!path.startsWith(NS_PREFIX_ON_TAG) && !path.startsWith("/")) path = NS_PREFIX_ON_TAG + path; Pattern pattern = Pattern.compile("/\\w"); Matcher matcher = pattern.matcher(path); StringBuilder sb = new StringBuilder(); int currentChar = 0; while (matcher.find()) { sb.append(path.substring(currentChar, matcher.start() - currentChar + 1)); if (!sb.toString().endsWith("/")) sb.append("/"); sb.append(NS_PREFIX_ON_TAG); currentChar = matcher.start() + 1; } sb.append(path.substring(currentChar, path.length())); XPath xpath; try { xpath = XPath.newInstance(sb.toString()); xpath.addNamespace(NS_PREFIX, doc.getRootElement().getNamespaceURI()); return xpath.selectNodes(doc); } catch (JDOMException e) { e.printStackTrace(); } return null; }
public List<String> getLocaleDirectories() throws JDOMException { List<Element> langAddedList = ((List<Element>) XPath.selectNodes(loopDoc, "//langAdded")); List<String> stringLocaleDirectories = new ArrayList<String>(); List<Element> localeDirectories = new ArrayList<Element>(); for (Element langAdded : langAddedList) { localeDirectories = langAdded.getChildren("language"); for (Element localeDirectory : localeDirectories) { stringLocaleDirectories.add(localeDirectory.getValue()); } } return stringLocaleDirectories; }
public Map getEnvironmentDetails(MavenProjectInfo mavenProjectInfo, String phrescoTargetDir) throws JDOMException, IOException { System.setProperty( "javax.xml.parsers.SAXParserFactory", "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl"); builder = new SAXBuilder(); // disabling xml validation builder.setValidation(false); builder.setIgnoringElementContentWhitespace(true); envXML = builder.build( new File( mavenProjectInfo.getBaseDir() + File.separator + mavenProjectInfo .getProject() .getProperties() .getProperty("phresco.environment.xml.file.path"))); // Get server details List<Element> serverDetails = ((List<Element>) XPath.selectNodes(envXML, "//Server")); System.out.println("serverDetails => " + serverDetails); // Get database details List<Element> dbDetails = ((List<Element>) XPath.selectNodes(envXML, "//Database")); System.out.println("dbDetails => " + dbDetails); for (Element server : serverDetails) { stringEnvDetails.put("context", server.getChildText("context")); stringEnvDetails.put("deploy_dir", server.getChildText("deploy_dir")); } for (Element db : dbDetails) { stringEnvDetails.put("username", db.getChildText("username")); stringEnvDetails.put("password", db.getChildText("password")); stringEnvDetails.put("host", db.getChildText("host")); stringEnvDetails.put("dbname", db.getChildText("dbname")); } return stringEnvDetails; }