public int loadfileResult(String nfile, Map<String,Party> mParties)
	{
		double totalShare= 0.0;
		int updateFileValue = 1;
		try {
			// Let's go to process the file
			File file = new File(nfile);	
			
			// JaxB process
			JAXBContext jaxbContext = JAXBContext.newInstance(ConstituencyResults.class);
			// Convert from XML to Java Object
			Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
			ConstituencyResults results = (ConstituencyResults) jaxbUnmarshaller.unmarshal(file);
			
			// Loop constituencyResult
			Iterator it = results.getConstituencyResult().iterator();
			while (it.hasNext()){
				ConstituencyResult res = (ConstituencyResult) it.next();
				log.info(res.getConsituencyId().toString()+" - "+res.getConstituencyName().toString());
				// Loop Results
				Results Lresult= (Results) res.getResults();
				Iterator it2 = Lresult.getResult().iterator();
				while (it2.hasNext()){
					Result r = (Result) it2.next();
					// Create Party results
					Party pt = new Party();
					pt.setName(r.getPartyCode().trim());
					if (r.getVotes()!=null) pt.setVotes(Integer.valueOf(r.getVotes()));
					if (r.getShare()!=null) totalShare += Double.valueOf(r.getShare());
					// Store Party results
					localPartiesResult.add(pt);
				}
			}
			// After finish processing the file, we check that the porcentaje is OK
			if (Math.round(totalShare)!=100){
				log.error("% error in file "+nfile+". Result = "+Double.valueOf(totalShare));
				updateFileValue = -2;
			}
		} catch (JAXBException e) {
			e.printStackTrace();
			localPartiesResult.clear();
			updateFileValue = -1;
		}
		// Everything was fine with the file (or we assume it), so lets update the parties results now
		if (localPartiesResult.size()>0) updatePartiesList(mParties);
		return updateFileValue;
	}