We have seen this be tied to UAC and permissions in some way or another. Running Process Monitor while attempting to install and filtering by that file is a good place to start. We check the version of the DLL and if something is preventing that from happening the installer may fail.
I can't be sure, but this sounds like an issue we had 2 years ago. The xml parser was installed, but the Uniprint installer couldn't see it properly. This led to all kinds of backflips getting it to install. During troubleshooting the issue went away and never returned. There were a few thoughts (in our case) why it happened, one of which was a corruption caused by the install of 8.4 previous to the 9r2 install (we were upgrading). While the upgrade should have worked, and did on a small percentage, it was mostly problematic. However, it also happened on a couple fresh installs. This seemed to go away when using a newer version of the 9r2 iso to install from, so we wrote that off as a bug that had been fixed.
Now, none of that will really help you much if you're still on 9.0 I'm sorry to say, but support did have info on re-registering the dll and all kinds of other things that got us through the initial hurdles. Ultimately you may want to consider upgrading to 9r2. We did an in place from 8.4 to 9r2 and it went fine, so (assuming backups just in case) you should be good from 9 to 9r2.
We had a similar issue tied to UAC. The general work-around is to disable UAC before running the installer. However, there was a case when UAC was not disabled on the first installation attempt and subsequent attempts to install the program (even though UAC was turned off) failed with the error message “The file ‘C:\Windows\system32\msxml6.dll’ could not be opened. Please check that your disk is not full and that you have access to the destination directory.”
I fixed the issue by turning off UAC, taking ownership of msxml6.dll, & then reinstall by right clicking setup.exe > properties > compatibility tab > run this program in compatibility mode for windows 7. Honesty, I have no idea if taking ownership of msxml6.dll is even needed.