There are two ways:
a) add extension=domxml.so to php.ini and do not use dl('domxml.so');
b) do not add extension=domxml.so to php.ini and use dl('domxml.so');
If you add extension=domxml.so to php.ini and additionally use dl('domxml.so') then php tries to register the module functions twice which is the cause of the error messages because it is not possible to register the functions of one module twice.
If you don't add extension=domxml.so to php.ini then phpinfo() will not show any domxml extension. But as soon as a script uses dl('domxml.so') the extension will be available for that one script while it runs.
So far I never had to do with code that used dl(...) because on all servers (I had to do with so far) that use shared extensions that extensions are enabled in php.ini.
So I'm not sure if the following will show anything about domxml (just to test, because I'd recommend to enable the extension in php.ini as long as you're not concerned about PHP memory usage on a low memory system):
Comment the extension=domxml.so line and restart the web server. Then create the following script
<?PHP
dl('domxml.so');
phpinfo();
to check if phpinfo displays anything about domxml.
I think it should ....
Thomas