public static Mapa fromElement(Node element, Mapa mapa, Dinero d,
			Turno turnos, Poblacion poblacion)
			throws NoSeCumplenLosRequisitosException,
			FondosInsuficientesException, SuperficieInvalidaParaConstruir,
			CoordenadaInvalidaException,
			CapacidadElectricaInsuficienteException, NoHayConexionConTuberias,
			NoHayConexionConRutas, NoHayConexionConRedElectrica {

		NodeList childs = element.getChildNodes();
		for (int i = 0; i < childs.getLength(); i++) {
			Node child = childs.item(i);

			if (child.getNodeName().equals("tamanio")) {
				mapa.tamanio = Integer.valueOf(child.getTextContent());
			} else if (child.getNodeName().equals("territorio")) {
				mapa.territorio = MapaTerritorio.fromElement(child);
			} else if (child.getNodeName().equals("tuberias")) {
				mapa.tuberias = MapaTuberias.fromElement(child, mapa, d);
			} else if (child.getNodeName().equals("rutas")) {
				mapa.rutas = MapaRutas.fromElement(child, mapa, d);
			} else if (child.getNodeName().equals("redElectrica")) {
				mapa.redElectrica = MapaElectrico.fromElement(child, mapa, d);
			} else if (child.getNodeName().equals("ciudad")) {
				mapa.ciudad = MapaEdilicio.fromElement(child, mapa, d);
			} else if (child.getNodeName().equals("sistemaElectrico")) {
				mapa.sistemaElectrico = SistemaElectrico.fromElement(child);
				// } else if (child.getNodeName().equals("Dinero")) {
				// Dinero dinero = Dinero.fromElement(child, mapa, turnos,
				// poblacion);
				// mapa.dinero = dinero;
				// mapa.dinero = d;
			} else if (child.getNodeName().equals("reparador")) {
				Reparador reparador = Reparador.fromElement(child, mapa);
				mapa.reparador = reparador;
			}
		}
		// mapa.territorio.imprimirTerritorio();
		return mapa;
	}