List of usage examples for javax.xml.xpath XPath evaluate
public Object evaluate(String expression, InputSource source, QName returnType) throws XPathExpressionException;
From source file:isl.FIMS.servlet.imports.ImportXML.java
private Document createAdminPart(String fileId, String type, Document doc, String username) { //create admin element String query = "name(//admin/parent::*)"; DBFile dbf = new DBFile(this.DBURI, this.systemDbCollection + type, type + ".xml", this.DBuser, this.DBpassword); String parentOfAdmin = dbf.queryString(query)[0]; Element parentElement = (Element) doc.getElementsByTagName(parentOfAdmin).item(0); Element admin = doc.createElement("admin"); parentElement.appendChild(admin);//from w ww . j a v a 2s . c o m //create id element String id = fileId.split(type)[1]; Element idE = doc.createElement("id"); idE.appendChild(doc.createTextNode(id)); admin.appendChild(idE); //create uri_id element String uri_name = ""; try { uri_name = DMSTag.valueOf("uri_name", "target", type, this.conf)[0]; } catch (DMSException ex) { ex.printStackTrace(); } String uriValue = this.URI_Reference_Path + uri_name + "/" + id; String uriPath = UtilsXPaths.getPathUriField(type); Element uriId = doc.createElement("uri_id"); uriId.appendChild(doc.createTextNode(uriValue)); admin.appendChild(uriId); if (!uriPath.equals("")) { try { XPath xPath = XPathFactory.newInstance().newXPath(); NodeList nodes = (NodeList) xPath.evaluate(uriPath, doc.getDocumentElement(), XPathConstants.NODESET); Node oldChild = nodes.item(0); if (oldChild != null) { oldChild.setTextContent(uriValue); } } catch (XPathExpressionException ex) { ex.printStackTrace(); } } //create lang element Element lang = doc.createElement("lang"); lang.appendChild(doc.createTextNode(this.lang)); admin.appendChild(lang); //create organization element Element organization = doc.createElement("organization"); organization.appendChild(doc.createTextNode(this.getUserGroup(username))); admin.appendChild(organization); //create creator element Element creator = doc.createElement("creator"); creator.appendChild(doc.createTextNode(username)); admin.appendChild(creator); //create creator element Element saved = doc.createElement("saved"); saved.appendChild(doc.createTextNode("yes")); admin.appendChild(saved); //create locked element Element locked = doc.createElement("locked"); locked.appendChild(doc.createTextNode("no")); admin.appendChild(locked); Element status = doc.createElement("status"); if (GetEntityCategory.getEntityCategory(type).equals("primary")) { status.appendChild(doc.createTextNode("unpublished")); } admin.appendChild(status); //create version elemnt Element versions = doc.createElement("versions"); //create versionidr elememt Element versionId = doc.createElement("versionId"); versionId.appendChild(doc.createTextNode("1")); versions.appendChild(versionId); //create versionUser elememt Element versionUser = doc.createElement("versionUser"); versionUser.appendChild(doc.createTextNode(username)); versions.appendChild(versionUser); //create versionDate elememt DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); Element versionDate = doc.createElement("versionDate"); versionDate.appendChild(doc.createTextNode(dateFormat.format(date))); versions.appendChild(versionDate); admin.appendChild(versions); //create read element Element read = doc.createElement("read"); read.appendChild(doc.createTextNode(username)); admin.appendChild(read); //create write element Element write = doc.createElement("write"); write.appendChild(doc.createTextNode(username)); admin.appendChild(write); //create status element //create imported element Element imported = doc.createElement("imported"); imported.appendChild(doc.createTextNode(username)); admin.appendChild(imported); return doc; }
From source file:gov.nij.bundles.intermediaries.ers.EntityResolutionMessageHandlerTest.java
@Test public void testPerformEntityResolutionWithDetermFactors() throws Exception { XmlConverter converter = new XmlConverter(); converter.getDocumentBuilderFactory().setNamespaceAware(true); InputStream attributeParametersStream = getClass() .getResourceAsStream("/xml/TestAttributeParametersWithDeterm.xml"); entityResolutionMessageHandler.setAttributeParametersStream(attributeParametersStream); testRequestMessageInputStream = getClass() .getResourceAsStream("/xml/EntityMergeRequestMessageForDeterm.xml"); Document testRequestMessage = converter.toDOMDocument(testRequestMessageInputStream); Node entityContainerNode = testRequestMessage .getElementsByTagNameNS(EntityResolutionNamespaceContext.ER_EXT_NAMESPACE, "EntityContainer") .item(0);//from w w w . ja va2s. c o m assertNotNull(entityContainerNode); Document resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, null, null); resultDocument.normalizeDocument(); // LOG.info(converter.toString(resultDocument)); XPath xp = XPathFactory.newInstance().newXPath(); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); NodeList entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); assertEquals(2, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(2, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:OriginalRecordReference", resultDocument, XPathConstants.NODESET); assertEquals(2, entityNodes.getLength()); for (int i = 0; i < entityNodes.getLength(); i++) { Element e = (Element) entityNodes.item(i); String entityIdRef = e.getAttributeNS(EntityResolutionNamespaceContext.STRUCTURES_NAMESPACE, "ref"); assertNotNull(entityIdRef); assertNotNull(xp.evaluate("//merge-result-ext:Entity[@s:id='" + entityIdRef + "']", resultDocument, XPathConstants.NODE)); } }
From source file:gov.nij.bundles.intermediaries.ers.EntityResolutionMessageHandlerTest.java
@Ignore // only use this test to explore performance issues @Test//from ww w . jav a 2s . com public void testSortLargeRecordSet() throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(true); Document entityMergeRequestDocument = dbf.newDocumentBuilder() .parse(new File("src/test/resources/xml/EntityMergeRequestMessageSortTest.xml")); Document attributeParametersDocument = dbf.newDocumentBuilder() .parse(new File("src/test/resources/xml/TestAttributeParameters.xml")); XPath xp = XPathFactory.newInstance().newXPath(); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); Element entityContainerElement = (Element) xp.evaluate( "/merge:EntityMergeRequestMessage/merge:MergeParameters/er-ext:EntityContainer", entityMergeRequestDocument, XPathConstants.NODE); NodeList entityNodes = (NodeList) xp.evaluate("er-ext:Entity", entityContainerElement, XPathConstants.NODESET); int newEntityGroupCount = 100; for (int i = 0; i < newEntityGroupCount; i++) { for (int j = 0; j < entityNodes.getLength(); j++) { Element newEntityElement = (Element) entityNodes.item(j).cloneNode(true); entityContainerElement.appendChild(newEntityElement); } } NodeList newEntityNodes = (NodeList) xp.evaluate("er-ext:Entity", entityContainerElement, XPathConstants.NODESET); assertEquals((newEntityGroupCount + 1) * entityNodes.getLength(), newEntityNodes.getLength()); LOG.info("Large Record Set sort test, record count=" + newEntityNodes.getLength()); // instrument the following line as needed for performance testing @SuppressWarnings("unused") Document resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerElement, attributeParametersDocument.getDocumentElement(), makeEntityResolutionConfigurationNode(1 + "")); // LOG.info(new XmlConverter().toString(resultDocument)); }
From source file:gov.nij.bundles.intermediaries.ers.EntityResolutionMessageHandlerTest.java
/** * This unit test will read a entity merge request document that has given and sur names in mixed case. * It will then set an ER threshold of 3 and pass in six entities so ER is skipped. * However, the results should still be sorted and passed back in order. * /*from ww w . j a va 2 s . com*/ * @throws Exception */ @Test public void testRecordLimitSorting() throws Exception { XmlConverter converter = new XmlConverter(); converter.getDocumentBuilderFactory().setNamespaceAware(true); Document testRequestMessage = converter .toDOMDocument(getClass().getResourceAsStream("/xml/EntityMergeRequestMessageMixedCase.xml")); Node entityContainerNode = testRequestMessage .getElementsByTagNameNS(EntityResolutionNamespaceContext.ER_EXT_NAMESPACE, "EntityContainer") .item(0); assertNotNull(entityContainerNode); Node entityResolutionConfigurationNode = makeEntityResolutionConfigurationNode("2"); Document attributeParametersDocument = entityResolutionMessageHandler.getAttributeParametersDocument(); Document resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, attributeParametersDocument.getDocumentElement(), entityResolutionConfigurationNode); XPath xp = XPathFactory.newInstance().newXPath(); xp.setNamespaceContext(testNamespaceContext); NodeList entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); int inputEntityNodeCount = 6; assertEquals(inputEntityNodeCount, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(6, entityNodes.getLength()); String recordLimitExceeded = xp.evaluate( "/merge-result:EntityMergeResultMessage/merge-result:RecordLimitExceededIndicator", resultDocument); assertEquals("true", recordLimitExceeded); assertEquals("DUCK", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[1]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName", resultDocument)); assertEquals("Donald", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[1]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName", resultDocument)); assertEquals("MOUSE", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[2]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName", resultDocument)); assertEquals("FRANK", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[2]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName", resultDocument)); assertEquals("mouse", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[3]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName", resultDocument)); assertEquals("macky", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[3]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName", resultDocument)); assertEquals("MouSe", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[4]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName", resultDocument)); assertEquals("Mickey", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[4]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName", resultDocument)); assertEquals("MOUSE", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[5]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName", resultDocument)); assertEquals("Minn", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[5]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName", resultDocument)); assertEquals("Mouse", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[6]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName", resultDocument)); assertEquals("MINNY", xp.evaluate( "//merge-result:EntityContainer/merge-result-ext:Entity[6]/ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName", resultDocument)); //LOG.info(new XmlConverter().toString(resultDocument)); }
From source file:org.ala.harvester.FlickrHarvester.java
/** * Process a single image, do the document mapping etc * // w ww . java2 s . co m * @param infosourceId * @param imageIndex * @param currentResDom * @throws Exception */ private boolean processSingleImage(int infosourceId, int imageIndex, Document currentResDom) throws Exception { XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); String xPathToPhotoId = "/rsp/photos/photo[" + imageIndex + "]/@id"; String photoId = (String) xpath.evaluate(xPathToPhotoId, currentResDom, XPathConstants.STRING); logger.info("Handling photo ID: " + photoId); final String flickrMethod = "flickr.photos.getInfo"; // Calls the Flickr's Photo Info API to determine whether the photo // comes from Australia or not. String photoInfoFlickrUrl = this.flickrRestBaseUrl + "/" + "?method=" + flickrMethod + "&" + "api_key=" + this.flickrApiKey + "&" + "photo_id=" + photoId; System.out.println("PHOTO URL:" + photoInfoFlickrUrl); org.w3c.dom.Document photoInfoDom = null; // Create an instance of HttpClient. HttpClient client = new HttpClient(); // Create a method instance. GetMethod method = new GetMethod(photoInfoFlickrUrl); // Provide custom retry handler is necessary method.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8"); method.getParams().setParameter(HttpMethodParams.HTTP_ELEMENT_CHARSET, "UTF-8"); method.getParams().setParameter(HttpMethodParams.HTTP_URI_CHARSET, "UTF-8"); logger.debug( "Fetching info. for photo with ID " + photoId + " from " + "`" + photoInfoFlickrUrl + "`" + "\n"); try { int statusCode = client.executeMethod(method); if (statusCode != HttpStatus.SC_OK) { String errMsg = "HTTP GET to " + "`" + photoInfoFlickrUrl + "`" + " returned non HTTP OK code. " + "Returned code " + statusCode + " and message " + method.getStatusLine() + "\n"; method.releaseConnection(); logger.error(errMsg); throw new Exception(errMsg); } InputStream responseStream = method.getResponseBodyAsStream(); // Instantiates a DOM builder to create a DOM of the response. DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder domBuilder = domFactory.newDocumentBuilder(); photoInfoDom = domBuilder.parse(responseStream); } catch (Exception domCreationErr) { throw new Exception("Failed to create DOM representation of GET response.", domCreationErr); } finally { // Release the connection. method.releaseConnection(); } // Check for Flickr's error. if (!isDocExtractionSuccessful(photoInfoDom)) { throw new Exception("Flickr error response for fetching single image information."); } if (System.getProperty("overwrite") != null && "false".equals(System.getProperty("overwrite"))) { String photoPageUrl = (String) xpath.evaluate("/rsp/photo/urls/url[@type=\"photopage\"]/text()", photoInfoDom, XPathConstants.STRING); logger.debug("photo page URL: " + photoPageUrl); org.ala.model.Document doc = this.repository.getDocumentByGuid(photoPageUrl); if (doc != null) { logger.debug("Document with URI already harvested. Skipping: " + photoPageUrl); return true; } } // Determines whether photo has geo-coded tag from Australia. // If so, pass onto DocumentMapper. if (isPhotoFromAustralia(photoInfoDom)) { try { String document = (DOMUtils.domToString(photoInfoDom)); // FIXME flickr GUID ??? List<ParsedDocument> parsedDocs = documentMapper.map("", document.getBytes()); for (ParsedDocument parsedDoc : parsedDocs) { this.repository.storeDocument(infosourceId, parsedDoc); debugParsedDoc(parsedDoc); } return false; } catch (Exception docMapperErr) { // Skipping over errors here and proceeding to next document. logger.error("Problem processing image. " + docMapperErr.toString() + ", Problem processing: " + photoInfoFlickrUrl, docMapperErr); } } else { logger.debug("Photo is unAustralian: " + photoInfoFlickrUrl); } return false; }
From source file:com.cisco.dvbu.ps.common.adapters.config.SoapHttpConfig.java
private void parseCallback(Element eElement) throws AdapterException { XPath xpath = XPathFactory.newInstance().newXPath(); try {//from w ww . jav a2 s .c o m SoapHttpConnectorCallback cb = new SoapHttpConnectorCallback(); cb.setOperation(eElement.getAttribute(AdapterConstants.CONNECTOR_SE_NAME)); // log.debug("Operation: " + cb.getOperation()); cb.setEndpoint(eElement.getAttribute(AdapterConstants.CONNECTOR_SH_ENDPOINT)); // log.debug("Endpoint: " + cb.getEndpoint()); cb.setName(cb.getEndpoint() + AdapterConstants.CONNECTOR_EP_SEPARATOR + cb.getOperation()); Element e = (Element) xpath.evaluate(AdapterConstants.XPATH_CONN_CB_SOAPACTION, eElement, XPathConstants.NODE); cb.setAction(e.getTextContent()); // log.debug(e.getNodeName() + ": " + e.getTextContent()); e = (Element) xpath.evaluate(AdapterConstants.XPATH_CONN_CB_RQ_BODY, eElement, XPathConstants.NODE); cb.setRequestBodyXsl(e.getTextContent().trim()); // log.debug(e.getNodeName() + ": " + e.getTextContent()); e = (Element) xpath.evaluate(AdapterConstants.XPATH_CONN_CB_RS_BODY, eElement, XPathConstants.NODE); cb.setResponseBodyXsl(e.getTextContent().trim()); // log.debug(e.getNodeName() + ": " + e.getTextContent()); connCallbacks.put(cb.getName(), cb); } catch (Exception e) { log.error("Configuration File Error! One or more mandatory configuration options are missing"); throw new AdapterException(401, "Configuration File Error! One or more mandatory configuration options are missing.", e); } }
From source file:gov.nij.bundles.intermediaries.ers.EntityResolutionMessageHandlerTest.java
@Test public void testRecordLimit() throws Exception { XmlConverter converter = new XmlConverter(); converter.getDocumentBuilderFactory().setNamespaceAware(true); Document testRequestMessage = converter.toDOMDocument(testRequestMessageInputStream); Node entityContainerNode = testRequestMessage .getElementsByTagNameNS(EntityResolutionNamespaceContext.ER_EXT_NAMESPACE, "EntityContainer") .item(0);// ww w .ja v a 2 s.co m assertNotNull(entityContainerNode); Node entityResolutionConfigurationNode = makeEntityResolutionConfigurationNode( String.valueOf(Integer.MAX_VALUE)); Document resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, null, entityResolutionConfigurationNode); XPath xp = XPathFactory.newInstance().newXPath(); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); NodeList entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); int inputEntityNodeCount = 6; assertEquals(inputEntityNodeCount, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(3, entityNodes.getLength()); String recordLimitExceeded = xp.evaluate( "/merge-result:EntityMergeResultMessage/merge-result:RecordLimitExceededIndicator", resultDocument); assertEquals("false", recordLimitExceeded); entityResolutionConfigurationNode = makeEntityResolutionConfigurationNode(6 + ""); resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, null, entityResolutionConfigurationNode); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); inputEntityNodeCount = 6; assertEquals(inputEntityNodeCount, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(3, entityNodes.getLength()); recordLimitExceeded = xp.evaluate( "/merge-result:EntityMergeResultMessage/merge-result:RecordLimitExceededIndicator", resultDocument); assertEquals("false", recordLimitExceeded); entityResolutionConfigurationNode = makeEntityResolutionConfigurationNode(null); resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, null, entityResolutionConfigurationNode); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); inputEntityNodeCount = 6; assertEquals(inputEntityNodeCount, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(3, entityNodes.getLength()); recordLimitExceeded = xp.evaluate( "/merge-result:EntityMergeResultMessage/merge-result:RecordLimitExceededIndicator", resultDocument); assertEquals("false", recordLimitExceeded); entityResolutionConfigurationNode = makeEntityResolutionConfigurationNode("not an int"); resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, null, entityResolutionConfigurationNode); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); inputEntityNodeCount = 6; assertEquals(inputEntityNodeCount, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(3, entityNodes.getLength()); recordLimitExceeded = xp.evaluate( "/merge-result:EntityMergeResultMessage/merge-result:RecordLimitExceededIndicator", resultDocument); assertEquals("false", recordLimitExceeded); entityResolutionConfigurationNode = makeEntityResolutionConfigurationNode(2 + ""); Document attributeParametersDocument = entityResolutionMessageHandler.getAttributeParametersDocument(); resultDocument = entityResolutionMessageHandler.performEntityResolution(entityContainerNode, attributeParametersDocument.getDocumentElement(), entityResolutionConfigurationNode); xp.setNamespaceContext(new EntityResolutionNamespaceContext()); entityNodes = (NodeList) xp.evaluate("//merge-result:EntityContainer/merge-result-ext:Entity", resultDocument, XPathConstants.NODESET); inputEntityNodeCount = 6; assertEquals(inputEntityNodeCount, entityNodes.getLength()); entityNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord", resultDocument, XPathConstants.NODESET); assertEquals(6, entityNodes.getLength()); recordLimitExceeded = xp.evaluate( "/merge-result:EntityMergeResultMessage/merge-result:RecordLimitExceededIndicator", resultDocument); assertEquals("true", recordLimitExceeded); // LOG.info(new XmlConverter().toString(resultDocument)); NodeList statNodes = (NodeList) xp.evaluate("//merge-result-ext:MergedRecord/merge-result-ext:MergeQuality", resultDocument, XPathConstants.NODESET); assertEquals(6, statNodes.getLength()); statNodes = (NodeList) xp.evaluate( "//merge-result-ext:MergedRecord/merge-result-ext:MergeQuality/merge-result-ext:StringDistanceStatistics", resultDocument, XPathConstants.NODESET); assertEquals(12, statNodes.getLength()); statNodes = (NodeList) xp.evaluate( "//merge-result-ext:MergedRecord/merge-result-ext:MergeQuality/merge-result-ext:StringDistanceStatistics/merge-result-ext:AttributeXPath", resultDocument, XPathConstants.NODESET); assertEquals(12, statNodes.getLength()); statNodes = (NodeList) xp.evaluate( "//merge-result-ext:MergedRecord/merge-result-ext:MergeQuality/merge-result-ext:StringDistanceStatistics/merge-result-ext:StringDistanceMeanInRecord", resultDocument, XPathConstants.NODESET); assertEquals(12, statNodes.getLength()); statNodes = (NodeList) xp.evaluate( "//merge-result-ext:MergedRecord/merge-result-ext:MergeQuality/merge-result-ext:StringDistanceStatistics/merge-result-ext:StringDistanceStandardDeviationInRecord", resultDocument, XPathConstants.NODESET); assertEquals(12, statNodes.getLength()); }
From source file:com.esri.gpt.server.openls.provider.services.route.DetermineRouteProvider.java
/** * //from ww w. j a va 2 s.co m * @param context * @param ndReq * @param xpath * @throws Exception */ private void parseRequest(OperationContext context, Node ndReq, XPath xpath) throws Exception { DetermineRouteParams routeParams = new DetermineRouteParams(); Node ndRoutePlan = (Node) xpath.evaluate("xls:RoutePlan", ndReq, XPathConstants.NODE); if (ndRoutePlan != null) { RoutePlan routePlan = new RoutePlan(); Node ndRoutePreference = (Node) xpath.evaluate("xls:RoutePreference", ndRoutePlan, XPathConstants.NODE); if (ndRoutePreference != null) { routePlan.setRoutePreference(ndRoutePreference.getTextContent()); } Node ndWayPointList = (Node) xpath.evaluate("xls:WayPointList", ndRoutePlan, XPathConstants.NODE); if (ndWayPointList != null) { HashMap<String, Point> wayPointList = new HashMap<String, Point>(); Node ndStartPoint = (Node) xpath.evaluate("xls:StartPoint", ndWayPointList, XPathConstants.NODE); if (ndStartPoint != null) { Node ndStartPOI = (Node) xpath.evaluate("xls:POI", ndStartPoint, XPathConstants.NODE); if (ndStartPOI != null) { ndStartPoint = ndStartPOI; } Node ndStartPos = (Node) xpath.evaluate("xls:Position/gml:Point/gml:pos", ndStartPoint, XPathConstants.NODE); Point point = new Point(); if (ndStartPos != null) { String[] coords = ndStartPos.getTextContent().split(" "); point.setX(coords[0]); point.setY(coords[1]); } else { geocode(context, ndStartPoint, xpath, point); } wayPointList.put("start", point); } Node ndViaPoint = (Node) xpath.evaluate("xls:ViaPoint", ndWayPointList, XPathConstants.NODE); if (ndViaPoint != null) { Node ndViaPOI = (Node) xpath.evaluate("xls:POI", ndStartPoint, XPathConstants.NODE); if (ndViaPOI != null) { ndViaPoint = ndViaPOI; } Point point = new Point(); Node ndViaPos = (Node) xpath.evaluate("xls:Position/gml:Point/gml:pos", ndViaPoint, XPathConstants.NODE); if (ndViaPos != null) { String[] coords = ndViaPos.getTextContent().split(" "); point.setX(coords[0]); point.setY(coords[1]); } else { geocode(context, ndViaPoint, xpath, point); } wayPointList.put("via", point); } Node ndEndPoint = (Node) xpath.evaluate("xls:EndPoint", ndWayPointList, XPathConstants.NODE); if (ndEndPoint != null) { Node ndEndPOI = (Node) xpath.evaluate("xls:POI", ndEndPoint, XPathConstants.NODE); if (ndEndPOI != null) { ndEndPoint = ndEndPOI; } Node ndEndPos = (Node) xpath.evaluate("xls:Position/gml:Point/gml:pos", ndEndPoint, XPathConstants.NODE); Point point = new Point(); if (ndEndPos != null) { String[] coords = ndEndPos.getTextContent().split(" "); point.setX(coords[0]); point.setY(coords[1]); } else { geocode(context, ndEndPoint, xpath, point); } wayPointList.put("end", point); } routePlan.setWayPointList(wayPointList); } Node ndAvoidList = (Node) xpath.evaluate("xls:AvoidList", ndRoutePlan, XPathConstants.NODE); if (ndAvoidList != null) { Node ndAvoidPOI = (Node) xpath.evaluate("xls:POI", ndAvoidList, XPathConstants.NODE); if (ndAvoidPOI != null) { ndAvoidList = ndAvoidPOI; } HashMap<String, Point> avoidPointList = new HashMap<String, Point>(); Node ndStartPos = (Node) xpath.evaluate("xls:Position/gml:Point/gml:pos", ndAvoidList, XPathConstants.NODE); Point point = new Point(); if (ndStartPos != null) { String[] coords = ndStartPos.getTextContent().split(" "); point.setX(coords[0]); point.setY(coords[1]); } else { geocode(context, ndAvoidList, xpath, point); } avoidPointList.put("avoid", point); routePlan.setAvoidPointList(avoidPointList); } routeParams.setRoutePlan(routePlan); } Node ndRouteInst = (Node) xpath.evaluate("xls:RouteInstructionsRequest", ndReq, XPathConstants.NODE); if (ndRouteInst != null) { RouteInstructionsRequest routeInst = new RouteInstructionsRequest(); String format = (String) xpath.evaluate("@format", ndRouteInst, XPathConstants.STRING); String provideGeometry = (String) xpath.evaluate("@provideGeometry", ndRouteInst, XPathConstants.STRING); routeInst.setFormat(format); routeInst.setProvideGeometry(provideGeometry); routeParams.setRouteInstructions(routeInst); } Node ndRouteMap = (Node) xpath.evaluate("xls:RouteMapRequest", ndReq, XPathConstants.NODE); if (ndRouteMap != null) { RouteMap routeMap = new RouteMap(); Node ndOutput = (Node) xpath.evaluate("xls:Output", ndRouteMap, XPathConstants.NODE); if (ndOutput != null) { ImageOutput imgOutput = new ImageOutput(); Output output = new Output(); String format = (String) xpath.evaluate("@format", ndOutput, XPathConstants.STRING); String width = (String) xpath.evaluate("@width", ndOutput, XPathConstants.STRING); String height = (String) xpath.evaluate("@height", ndOutput, XPathConstants.STRING); output.setFormat(format); output.setWidth(width); output.setHeight(height); imgOutput.setOutput(output); routeMap.setImageOutput(imgOutput); } routeParams.setRouteMap(routeMap); } context.getRequestOptions().setDetermineRouteParams(routeParams); }
From source file:org.ala.harvester.FlickrHarvester.java
/** * Determines whether a Flickr photo has geo-coded location with Australia * as the country. <br />//from w ww. ja v a 2 s. c om * * XPath used to extract this information is * <code>/rsp/photo/location/country/text()</code> <br /> * * Non case-sensitive String comparison is performed. * * @param photoInfoXmlDom * DOM representation of XML result from calling * <code>flickr.photos.search</code> Flickr method. * * @return <code>true</code> if photo has geo-coded location for Australia, * <code>false</code> otherwise. * * @throws csiro.diasb.protocolhandlers.Exception * On error. * * @since v0.4 */ private boolean isPhotoFromAustralia(org.w3c.dom.Document photoInfoXmlDom) throws Exception { XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); if (photoInfoXmlDom == null) { String errMsg = "DOM of Photo Info. XML has null reference."; logger.error(errMsg); throw new Exception(errMsg); } String photoTitle = (String) xpath.evaluate("/rsp/photo/title/text()", photoInfoXmlDom, XPathConstants.STRING); String photoDescription = (String) xpath.evaluate("/rsp/photo/description/text()", photoInfoXmlDom, XPathConstants.STRING); String photoCountry = (String) xpath.evaluate("/rsp/photo/location/country/text()", photoInfoXmlDom, XPathConstants.STRING); //check the machine tags String xPathToTags = "/rsp/photo/tags/tag/text()"; NodeList nl = (NodeList) xpath.evaluate(xPathToTags, photoInfoXmlDom, XPathConstants.NODESET); for (int i = 0; i < nl.getLength(); i++) { String content = nl.item(i).getNodeValue(); if (content != null) { content = content.toLowerCase(); if (content.contains("australia")) { return true; } } } if ("australia".compareToIgnoreCase(photoCountry) == 0 || (photoTitle != null && photoTitle.toLowerCase().contains("australia")) || (photoDescription != null && photoDescription.toLowerCase().contains("australia"))) { return true; } return false; }
From source file:gov.nij.bundles.intermediaries.ers.EntityResolutionNamespaceContextHelperTest.java
@Test public void testReturnNamespaceMapFromNode() throws Exception { //Retrieve ER xpath context XPath xpath; xpath = XPathFactory.newInstance().newXPath(); xpath.setNamespaceContext(new EntityResolutionNamespaceContext()); //Get the test attribute parameters configuration InputStream attributeParametersStream = getClass().getResourceAsStream("/xml/TestAttributeParameters.xml"); assertNotNull(attributeParametersStream); //Convert to DOM document XmlConverter converter = new XmlConverter(); converter.getDocumentBuilderFactory().setNamespaceAware(true); Document attributeParametersDocument = converter.toDOMDocument(attributeParametersStream); NodeList parameterNodes = null; //Perform Xpath to retrieve attribute parameters parameterNodes = (NodeList) xpath.evaluate("er-ext:AttributeParameter", attributeParametersDocument.getDocumentElement(), XPathConstants.NODESET); //Loop through attribute parameters to retrieve namespace map associated with attribute xpath for (int i = 0; i < parameterNodes.getLength(); i++) { Node node = parameterNodes.item(i); String attributeXpathValue = xpath.evaluate("er-ext:AttributeXPath", node); Map<String, String> namespaceMap = EntityResolutionNamespaceContextHelpers .returnNamespaceMapFromNode(attributeXpathValue, node); for (Map.Entry<String, String> entry : namespaceMap.entrySet()) { LOG.debug("Namespace Map Entry, Prefix : " + entry.getKey() + " Namespace : " + entry.getValue()); }/*from w w w .j a v a2s. c o m*/ if (attributeXpathValue.equals("ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonGivenName")) { assertEquals("http://niem.gov/niem/niem-core/2.0", namespaceMap.get("nc")); assertEquals("http://local.org/IEPD/Extensions/PersonSearchResults/1.0", namespaceMap.get("ext")); } if (attributeXpathValue.equals("ext:PersonSearchResult/ext:Person/nc:PersonName/nc:PersonSurName")) { assertEquals("http://niem.gov/niem/niem-core/2.0", namespaceMap.get("nc")); assertEquals("http://local.org/IEPD/Extensions/PersonSearchResults/1.0", namespaceMap.get("ext")); } } }