Seems like there are two different answers here, hopefully the first answer is right.
How would I generate the new address from the old wallet file when I import it? Would the new address be generated from the old wallet's private keys?
My apologies. I mis-read your question and I understood after I read it again. Deleted the misleading message.
I assume by old, you mean that the wallet was generated prior to 0.13.0? If that is so, the upgraded wallet will mean that the old keypool has been flushed during the upgrade and the new keypool was created following the upgrade. The new address has likely been generated from the HD seed for which the addresses are not within your old walllet due to the upgradewallet behavior.
Your best bet is to recover the new wallet. I don't think there's any harm in trying your old wallet, given that there's still a slight chance that somehow the address is in your old wallet. Addresses are shown sequentially when you generate a new receiving address from the receiving tab and there is a pool of 100 addresses which are not displayed to you in the wallet.dat. So, if you import the wallet into a new client and click generate, the receiving address could be the one that you've sent the funds to.
This is if the keypool has not been flushed by the upgrade wallet.