private ParsedCode parseXML(final String path) {

		final ParsedCode parsedCode = new ParsedCode();

		try {
			final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
					.newInstance();
			final DocumentBuilder docBuilder = docBuilderFactory
					.newDocumentBuilder();
			final Document doc = docBuilder.parse(new File(path));

			// normalize text representation
			doc.getDocumentElement().normalize();
			System.out.println("Root element of the doc is "
					+ doc.getDocumentElement().getNodeName());

			final NodeList listOfmetricScoperesult = doc
					.getElementsByTagName("metric-result-scope");

			for (int s = 0; s < listOfmetricScoperesult.getLength(); s++) {

				final Node firstMetricNode = listOfmetricScoperesult.item(s);
				final Element scopeElement = (Element) firstMetricNode;

				final NodeList listOfmetricResults = firstMetricNode
						.getChildNodes();

				final String functionName = scopeElement.getAttribute("scope");
				System.out.println("NODO NOMBRE:        " + functionName);

				// Agrego la function
				parsedCode.addFunction(functionName);

				for (int n = 0; n < listOfmetricResults.getLength(); n++) {

					if (!(n % 2 == 0)) {// No me preguntes porque es modulo dos,
										// escapa de mi conocimiento jaja.
						final Node metricNode = listOfmetricResults.item(n);
						final Element metricElement = (Element) metricNode;

						final String metricName = metricElement
								.getAttribute("name");
						final String valueName = metricElement
								.getAttribute("value");
						final Float value;

						if (valueName.contains("%")) {
							final String valuesName[] = valueName.split("%");
							value = Float.valueOf(valuesName[0]);
						} else if (valueName.contains(",")) {
							value = (float) 0;
						} else {
							value = Float.valueOf(valueName);
						}

						parsedCode.addMetricToFunction(functionName,
								metricName, value);

						System.out.println(metricName + ": " + value);
					}

				}

			}// end of for loop with s var

		} catch (final SAXParseException err) {
			System.out.println("** Parsing error" + ", line "
					+ err.getLineNumber() + ", uri " + err.getSystemId());
			System.out.println(" " + err.getMessage());

		} catch (final SAXException e) {
			final Exception x = e.getException();
			((x == null) ? e : x).printStackTrace();

		} catch (final Throwable t) {
			t.printStackTrace();
		}

		return parsedCode;

	}